在java Web项目中 数据库中的主键类型integer类型那么实体类中应该用啥类型或最好用啥类型?为啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在java Web项目中 数据库中的主键类型integer类型那么实体类中应该用啥类型或最好用啥类型?为啥?相关的知识,希望对你有一定的参考价值。
int、long、string那个更好?
intInteger 类在对象中包装了一个基本类型 int 的值。Integer 类型的对象包含一个 int 类型的字段。 此外,该类提供了多个方法,能在int类型和 String类型之间互相转换,还提供了处理 int 类型时非常有用的其他一些常量和方法。 参考技术A integer 没为什么 用OR映射会自动生成 int 的话 反正你jdk 自动装箱 拆箱 干嘛不自己设置为integer? 反正integer 绝对比int更好 参考技术B int啊 integer是int的封装类
我目前为止 数据库里没有用过integer类型。。。。。。一般定义int就可以了 参考技术C 你可以直接定义一个integer类型的,java支持自动包箱解箱。
如何从 JAVA 中的 ResultSet 或 ResultSetMetaData 对象中获取数据库表的主键的列名?
【中文标题】如何从 JAVA 中的 ResultSet 或 ResultSetMetaData 对象中获取数据库表的主键的列名?【英文标题】:How can I get the column name of the primary key of a Database Table from the ResultSet or ResultSetMetaData object in JAVA? 【发布时间】:2010-02-06 11:56:08 【问题描述】:我正在编写一个 Java 应用程序。我有一个结果集。现在我想找出表的主键的列名。
是否可以通过 ResultSet 对象或 ResultSetMetaData 对象或任何其他方式获取该列名。
我没有找到任何方法。
【问题讨论】:
查看数据库以了解表是如何定义的有什么问题?当存在多个唯一键约束时,就用户而言,一个可能是“主键”,并且代理键在数据库中被定义为主键。您为什么要尝试自动执行此操作? 【参考方案1】:没有。您不会从 ResultSet 或 ResultSetMetadata 获得该信息。
你想要使用的是DatabaseMetadata 类。从该类检查 getPrimaryKeys 方法以获取您想要的信息。
当然,要使用它,您需要知道表的名称。
【讨论】:
“目录”和“模式”是什么意思? “模式”是指数据库名称吗? @Yatendra,您使用的是什么数据库?这些在 DB2 中很常见。如果您使用 eclipse,并连接到“数据库开发”视图,您将能够自己解决。 @ericp,我正在使用 Eclipse IDE 和 MySQL 数据库。但我不希望我的代码依赖于任何特定的数据库。 快速谷歌搜索,发现tutorialized.com/view/tutorial/Database-Metadata-with-JDBC/… - :有时,对于给定的问题,根据数据库供应商有不同的解决方案。例如,获取 Oracle 数据库表名的代码与获取 MySQL 数据库表名的代码不同。当您为关系数据库开发应用程序或框架时,请确保您的连接池管理器将供应商名称作为参数。” @Pablo Santa Cruz:谢谢!我正在寻找这个答案。为什么它仍然不被接受?【参考方案2】:我想补充的是,如果在一个表中你有自增字段,它必须是主键。因此,您的代码可能如下所示:
if(metaColumn.isAutoIncrement(i))
primaryKey = metaColumn.getColumnName(i);
i=nColoumn+1;
它使用ResultSetMetaData
。
【讨论】:
如果主键不是身份,这将失败。 也许我的经验仅限于 MySQL,但在 MySQL 中,自增必须是主键。 Cmiiw。【参考方案3】:一个很好的工具可以用来验证元数据信息是dbVisualizer。
它使用 JDBC 元数据来检索表定义和数据库的其他部分。 Schema 和 Catalog 是表定义视图中的列 - 因此您可以检查您最喜欢的数据库在这些列中的哪些值。
dbVisualizer 提供免费的基本版本。
【讨论】:
以上是关于在java Web项目中 数据库中的主键类型integer类型那么实体类中应该用啥类型或最好用啥类型?为啥?的主要内容,如果未能解决你的问题,请参考以下文章