源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

hibernate4基本配置方式详解

  • 时间:2022-11-04 23:58 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:hibernate4基本配置方式详解
[b]可编程的配置方式-1[/b] 如果在配置cfg.xml的时候,不想在里面配置hbm.xml怎么办呢?可在程序里使用可编程的配置方式,也就是使用程序来指定在cfg.xml里面的配置信息,不推荐这种方式。如下:
Configuration cfg= new Configuration()
.addResource("Item.hbm.xml")
.addResource("Bid.hbm.xml");
一个替代方法(有时是更好选择)是,指定被映射的类,让Hibernate帮你寻找映射定义文件:
Configuration cfg= new Configuration()
.addClass(org.hibernate.auction.Item.class)
.addClass(org.hibernate.auction.Bid.class);
这种方式消除了任何对文件名的硬编码 [b]可编程的配置方式-2[/b] 还可以通过编程的方式来指定配置属性:
Configuration cfg= new Configuration()
.addClass(org.hibernate.auction.Item.class)
.setProperty("hibernate.dialect","org.hibernate.dialect.MySQLInnoDBDialect")
.setProperty("hibernate.connection.datasource","
.setProperty("hibernate.order_updates", "true");
其他可以传入配置属性的方式: 1:properties文件 2:xml文件 3:设置Java的系统属性,形如:java–Dproperty=value 另外要注意一点: [code]org.hibernate.cfg.Configuration[/code]实例被设计成启动期间(startup-time)对象,一旦SessionFactory 创建完成它就被丢弃了。 与数据库连接的配置有两种方法,一种是JDBC,一种是DataSource JDBC的配置 [img]http://files.jb51.net/file_images/article/201709/2017091210382341.png[/img] 示例:
oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@localhost:1521:orcl
bjpowernode
bjpowernode
[b]数据源的配置[/b]   示例如下:
java:/bjpowernodeDs
连接池c3p0的配置 由于Hibernate自己实现的连接池不太好,在项目中,建议使用工业级的连接池,比如:c3p0,Hibernate发行包中带有c3p0,下面就是其基本配置示例:
"connection.driver_class">oracle.jdbc.driver.OracleDriver
"connection.url">jdbc:oracle:thin:@localhost:1521:orcl
"connection.username">bjpowernode
"connection.password">bjpowernode
"c3p0.min_size">5
"c3p0.max_size">20
"c3p0.timeout">180
"c3p0.max_statements">50
[img]http://files.jb51.net/file_images/article/201709/2017091210382443.jpg[/img] [b]连接池c3p0的配置[/b] 由于Hibernate自己实现的连接池不太好,在项目中,建议使用工业级的连接池,比如:c3p0,Hibernate发行包中带有c3p0,下面就是其基本配置示例:
"connection.driver_class">oracle.jdbc.driver.OracleDriver
"connection.url">jdbc:oracle:thin:@localhost:1521:orcl
"connection.username">bjpowernode
"connection.password">bjpowernode
"c3p0.min_size">5
"c3p0.max_size">20
"c3p0.timeout">180
"c3p0.max_statements">50
[img]http://files.jb51.net/file_images/article/201709/2017091210382444.jpg[/img] 为了解决数据库中元素命名冲突的问题,引入catalog和schema来解决。 从概念上说,一个数据库系统包含多个Catalog,每个 Catalog又包含多个 Schema,而每个Schema又包含多个数据库对象(表、视图、字段等)。 比较简单而常用的实现方式是使用数据库名作为Catalog名,使用用户名作为Schema名,各种数据库系统对Catalog和Schema的支持具体可参见下表: [img]http://files.jb51.net/file_images/article/201709/2017091210382445.jpg[/img] [img]http://files.jb51.net/file_images/article/201709/2017091210382546.jpg[/img] [img]http://files.jb51.net/file_images/article/201709/2017091210382547.jpg[/img] [img]http://files.jb51.net/file_images/article/201709/2017091210382548.jpg[/img] [img]http://files.jb51.net/file_images/article/201709/2017091210382649.jpg[/img] [img]http://files.jb51.net/file_images/article/201709/2017091210382751.jpg[/img] [img]http://files.jb51.net/file_images/article/201709/2017091210382752.jpg[/img] [img]http://files.jb51.net/file_images/article/201709/2017091210382753.jpg[/img] [img]http://files.jb51.net/file_images/article/201709/2017091210382854.jpg[/img] 为了让应用在JDBC事务和JTA事务环境中可以移植,建议使用可选的HibernateTransaction API, 它包装并隐藏了底层系统,通过设置Hibernate配置属性hibernate.transaction.factory_class来指定一个Transaction实例的工厂类。 [b]有三个标准(内建)的选择:[/b] 1:委托给数据库(JDBC)事务(默认) Hibernate4以前:[code]org.hibernate.transaction.JDBCTransactionFactory[/code] Hibernate4里面:[code]org.hibernate.engine.transaction.internal.jdbc.JDBCTransactionFactory[/code] 2:JTA事务,如果在上下文环境中存在运行着的事务(如,EJB会话Bean的方法), 则委托给容器管 理的事务, 否则,将启动一个新的事务,并使用Bean管理的事务. Hibernate4以前:[code]org.hibernate.transaction.JTATransactionFactory[/code] Hibernate4里面:[code]org.hibernate.engine.transaction.internal.jta.JTATransactionFactory[/code] 3:委托给容器管理的JTA事务 Hibernate4以前:org.hibernate.transaction.CMTTransactionFactory Hibernate4 里面:[code]org.hibernate.engine.transaction.internal.jta.CMTTransactionFactory[/code] 也可以定义属于你自己的事务策略 (如, 针对CORBA的事务服务) [img]http://files.jb51.net/file_images/article/201709/201709121047.png?201781210484[/img] [img]http://files.jb51.net/file_images/article/201709/2017912104852379.png?201781210494[/img] [img]http://files.jb51.net/file_images/article/201709/2017091210383155.jpg[/img] [img]http://files.jb51.net/file_images/article/201709/2017091210383556.jpg[/img] [img]http://files.jb51.net/file_images/article/201709/2017091210383557.png[/img] 1:Hibernate使用SLF4J来做日志记录,可以根据你选择的绑定把日志输出到日志框架(NOP、Simple、log4jversion 1.2、JDK 1.4 logging、JCL 或 logback)上。 2:需要在 classpath里加入 slf4j-api.jar 和你选择的绑定的 JAR 文件(使用 Log4J 时加入slf4j-log4j12.jar),当然别忘了加入log4j自己的jar包。 [img]http://files.jb51.net/file_images/article/201709/2017091210383558.jpg[/img] [b]总结[/b] 以上所述是小编给大家介绍的hibernate4基本配置方式详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程素材网网站的支持!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部