Hibernate基础学习经验
在向大家详细介绍Hibernate基础之前,首先让大家了解下老版本的JDBC,然后全面介绍Hibernate基础。
一.老版本的JDBC
如果在用Hibernate操作比较老的JDBC版本时遇到了问题, 那么请禁用下面这两个JDBC 2特有的特性: 批量更新和滚动的结果集.
◆Hibernate.jdbc.batch_size=0
◆Hibernate.jdbc.use_scrollable_resultsets=false
1.oracle驱动
注: oracle安装文件的jdbc目录下的lib目录中,有oracle所需的各种驱动. 支持所有平台的JDBC Thin驱动如: classes12.jar , ojdbc14.jar等等…
◆classes12.jar - JDK 1.2 和 JDK 1.3下使用
◆ojdbc14.jar - JDK 1.4以上使用
2.thin与oci访问的区别
这个是Oracle提供的两套Java访问Oracle数据库的方法。thin就是纯粹用Java完成访问数据库的所有方法,优点是不用安装客户端;oci是Oracle Call Interface的首字母缩写,就是使用Java来调用本机的Oracle客户端,然后再访问数据库,优点是速度快,但是需要安装和配置数据库。(oci方式连接数据库,如果不安装oracle客户端,我们必须将oracle的bin目录中的oci.dll, ocijdbc9.dll, ociw32.dll copy到应用所使用的JDK的bin目录中.)
jdbc:oracle:thin:@ip地址:1521:实例名 换为 jdbc:oracle:oci@本地服务名 即可。如:从jdbc:oracle:thin:@10.1.1.2:1521:shdb改成:jdbc:oracle:oci8:@shdb. Shdb是数据库,非数据库用户.
二.Hibernate基础――JMX
JMX是一个用来管理Java应用和组件的标准API---主要通过Mbean访问这些应用程序和组件.Mbean是服务和资源包装器.
三.Hibernate基础――XML配置
Hibernate.cfg.xml,它应放在应用程序类路径的根目录中.如果已经使用了hibernate.properties,那么hibernate.cfg.xml会覆盖hibenate.properties中的任何设置.
四.Hibernate基础――自定义命名策略
假设CaveatEmptor中的所有表名都应该遵循模式CE_<table_name>.一种解决方案是手工在映射文件中的所有<class>和集合元素上指定table属性.然而,这种方法既费时又容易遗忘.替代做法是,实现Hibnernate的NamingStrategy接口:
Public class CENamingStrategy extends ImprovedNamingStrategy{ Public String classToTableName(String className){ Return StringHelper.unqualify(className); } Public String propertyToColumnName(String propertyName){ Return propertyName; } Public String tableName(String tableName){ Return “CE_”+tableName } Public String columnName(String columnName){ Return columnName; } Public Strring propertyToTableName(String className,String propertyName){ Return “CE_”+classToTableNmae(className) +”_”+propertyToColumnName(propertyName); } }