Hibernate基础学习经验
创始人
2024-06-08 06:30:28
0

在向大家详细介绍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属性.然而,这种方法既费时又容易遗忘.替代做法是,实现Hibnernate的NamingStrategy接口:

  1. Public class CENamingStrategy extends ImprovedNamingStrategy{  
  2. Public String classToTableName(String className){  
  3. Return StringHelper.unqualify(className);  
  4. }  
  5. Public String propertyToColumnName(String propertyName){  
  6. Return propertyName;  
  7. }  
  8. Public String tableName(String tableName){  
  9. Return “CE_”+tableName  
  10. }  
  11. Public String columnName(String columnName){  
  12. Return columnName;  
  13. }  
  14. Public Strring propertyToTableName(String className,String propertyName){  
  15. Return “CE_”+classToTableNmae(className)  
  16. +”_”+propertyToColumnName(propertyName);  
  17. }  

你扩展了ImproveNameingStrategy,它对你不想从头开始实现的NamingStrategy的所有方法提供默认实现.仅当映射没有指定显式的table名称时才调用classToTableName方法.如果属性没有显式的column名称,就调用propertyToColumnName()方法.当声明了显式的名称时,则调用tableName()和columnName()方法.NamingStrategy接口的***特性是动态行为的潜能.为了启用一个特定的命名策略.可以在启动时把一个实例传递到Hibernate的Configuration:

  1. Configuration cfg = new Configuration();    
  2. Cfg.setNamingStrategy(new CENameingStrategy());  
  3. SessionFactory sessionFactory = cfg.configure().buildSessionFactory(); 

【编辑推荐】

  1. 讲解NHibernate Session
  2. 简单描述Hibernate Sample
  3. Hibernate Annotations维护验证逻辑
  4. Hibernate ClassValidator实例
  5. 描述Hibernate持久性类

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...