java,hibernate和sql server对应的数据类型

Java数据类型
Hibernate数据类型
标准SQL数据类型
(PS:对于不同的DB可能有所差异)
byte、java.lang.BytebyteTINYINT
short、java.lang.ShortshortSMALLINT
int、java.lang.IntegerintegerINGEGER
long、java.lang.LonglongBIGINT
float、java.lang.FloatfloatFLOAT
double、java.lang.DoubledoubleDOUBLE
java.math.BigDecimalbig_decimalNUMERIC
char、java.lang.CharactercharacterCHAR(1)
boolean、java.lang.BooleanbooleanBIT
java.lang.StringstringVARCHAR
boolean、java.lang.Booleanyes_noCHAR(1)('Y'或'N')
boolean、java.lang.Booleantrue_falseCHAR(1)('Y'或'N')
java.util.Date、java.sql.DatedateDATE
java.util.Date、java.sql.TimetimeTIME
java.util.Date、java.sql.TimestamptimestampTIMESTAMP
java.util.CalendarcalendarTIMESTAMP
java.util.Calendarcalendar_dateDATE
byte[]binaryVARBINARY、BLOB
java.lang.StringtextCLOB
java.io.SerializableserializableVARBINARY、BLOB
java.sql.ClobclobCLOB
java.sql.BlobblobBLOB
java.lang.ClassclassVARCHAR
java.util.LocalelocaleVARCHAR
java.util.TimeZonetimezoneVARCHAR
java.util.CurrencycurrencyVARCHAR

 

在hibernate中类型的转换示例:

registerHibernateType(Types.DECIMAL, Hibernate.BIG_INTEGER.getName());     
registerHibernateType(Types.LONGVARBINARY, Hibernate.BLOB.getName());
registerHibernateType(Types.REAL, Hibernate.FLOAT.getName());
registerHibernateType(Types.DECIMAL, Hibernate.BIG_DECIMAL.getName());
registerHibernateType(Types.LONGVARCHAR, Hibernate.TEXT.getName());

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hibernate提供了一些工具类来获取数据库表信息,可以使用这些工具类来读取SQL Server表结构。以下是一个示例代码: ```java Configuration configuration = new Configuration().configure(); SessionFactory sessionFactory = configuration.buildSessionFactory(); Session session = sessionFactory.openSession(); try { // 获取Session的元数据 SessionFactoryImplementor sessionFactoryImplementation = (SessionFactoryImplementor) session.getSessionFactory(); JdbcServices jdbcServices = sessionFactoryImplementation.getJdbcServices(); JdbcConnectionAccess jdbcConnectionAccess = jdbcServices.getBootstrapJdbcConnectionAccess(); Connection connection = jdbcConnectionAccess.obtainConnection(); DatabaseMetaData metaData = connection.getMetaData(); // 读取表信息 String catalog = null; // 数据库名,为null表示当前数据库 String schema = null; // 模式名,为null表示不限制模式 String tableNamePattern = "my_table_name"; // 表名,支持通配符 String[] types = {"TABLE"}; // 表类型,为null表示所有类型都返回 ResultSet tables = metaData.getTables(catalog, schema, tableNamePattern, types); while (tables.next()) { String tableName = tables.getString("TABLE_NAME"); // 表名 String tableType = tables.getString("TABLE_TYPE"); // 表类型 // 读取主键信息 String pkColumnName = null; ResultSet primaryKeys = metaData.getPrimaryKeys(catalog, schema, tableName); while (primaryKeys.next()) { pkColumnName = primaryKeys.getString("COLUMN_NAME"); // 主键列名 } primaryKeys.close(); System.out.println("Table: " + tableName + " (" + tableType + ") Primary Key: " + pkColumnName); } tables.close(); } finally { session.close(); } ``` 在上面的代码中,我们首先获取了Session的元数据,然后使用元数据的`getTables()`方法读取满足条件的表信息,最后使用`getPrimaryKeys()`方法读取每个表的主键信息。需要注意的是,SQL Server的主键信息可能包含多个列,但是这里只读取了其中一个列的信息。如果需要读取所有主键列的信息,可以对`getPrimaryKeys()`方法的返回值进行遍历处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值