hibernate4基本配置方式详解
发布时间 - 2026-01-11 03:13:00 点击率:次可编程的配置方式-1

如果在配置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);
这种方式消除了任何对文件名的硬编码
可编程的配置方式-2
还可以通过编程的方式来指定配置属性:
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
另外要注意一点:
org.hibernate.cfg.Configuration实例被设计成启动期间(startup-time)对象,一旦SessionFactory 创建完成它就被丢弃了。
与数据库连接的配置有两种方法,一种是JDBC,一种是DataSource
JDBC的配置
示例:
oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@localhost:1521:orcl bjpowernode bjpowernode
数据源的配置
示例如下:
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
连接池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
为了解决数据库中元素命名冲突的问题,引入catalog和schema来解决。
从概念上说,一个数据库系统包含多个Catalog,每个 Catalog又包含多个
Schema,而每个Schema又包含多个数据库对象(表、视图、字段等)。
比较简单而常用的实现方式是使用数据库名作为Catalog名,使用用户名作为Schema名,各种数据库系统对Catalog和Schema的支持具体可参见下表:
为了让应用在JDBC事务和JTA事务环境中可以移植,建议使用可选的HibernateTransaction API, 它包装并隐藏了底层系统,通过设置Hibernate配置属性hibernate.transaction.factory_class来指定一个Transaction实例的工厂类。
有三个标准(内建)的选择:
1:委托给数据库(JDBC)事务(默认)
Hibernate4以前:org.hibernate.transaction.JDBCTransactionFactory
Hibernate4里面:org.hibernate.engine.transaction.internal.jdbc.JDBCTransactionFactory
2:JTA事务,如果在上下文环境中存在运行着的事务(如,EJB会话Bean的方法), 则委托给容器管 理的事务, 否则,将启动一个新的事务,并使用Bean管理的事务.
Hibernate4以前:org.hibernate.transaction.JTATransactionFactory
Hibernate4里面:org.hibernate.engine.transaction.internal.jta.JTATransactionFactory
3:委托给容器管理的JTA事务
Hibernate4以前:org.hibernate.transaction.CMTTransactionFactory
Hibernate4
里面:org.hibernate.engine.transaction.internal.jta.CMTTransactionFactory
也可以定义属于你自己的事务策略 (如, 针对CORBA的事务服务)
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包。
总结
以上所述是小编给大家介绍的hibernate4基本配置方式详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# hibernate4基本配置
# Hibernate 修改数据的实例详解
# Hibernate实现悲观锁和乐观锁代码介绍
# struts+spring+hibernate三个框架的整合
# Hibernate5新特性介绍
# hibernate和mybatis对比分析
# hibernate增删改查操作代码
# Hibernate 主清单文件配制的详细介绍
# 可编程
# 连接池
# 多个
# 自己的
# 基本配置
# 绑定
# 小编
# 包中
# 还可以
# 在此
# 和你
# 帮你
# 不太好
# 要注意
# 可在
# 给大家
# 数据库系统
# 可选
# 在里面
# 来做
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在万网ECS上快速搭建专属网站?
历史网站制作软件,华为如何找回被删除的网站?
Laravel如何使用Telescope进行调试?(安装和使用教程)
如何自定义建站之星网站的导航菜单样式?
南京网站制作费用,南京远驱官方网站?
香港服务器租用费用高吗?如何避免常见误区?
Angular 表单中正确绑定输入值以确保提交与验证正常工作
开心动漫网站制作软件下载,十分开心动画为何停播?
香港服务器部署网站为何提示未备案?
如何用PHP快速搭建高效网站?分步指南
如何在阿里云ECS服务器部署织梦CMS网站?
Thinkphp 中 distinct 的用法解析
浅谈redis在项目中的应用
公司网站制作需要多少钱,找人做公司网站需要多少钱?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理
如何快速生成可下载的建站源码工具?
如何在橙子建站上传落地页?操作指南详解
android nfc常用标签读取总结
打造顶配客厅影院,这份100寸电视推荐名单请查收
北京专业网站制作设计师招聘,北京白云观官方网站?
Android Socket接口实现即时通讯实例代码
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
北京网站制作的公司有哪些,北京白云观官方网站?
Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧
高防服务器租用首荐平台,企业级优惠套餐快速部署
php增删改查怎么学_零基础入门php数据库操作必知基础【教程】
Laravel如何自定义分页视图?(Pagination示例)
如何在七牛云存储上搭建网站并设置自定义域名?
JS碰撞运动实现方法详解
php打包exe后无法访问网络共享_共享权限设置方法【教程】
如何在橙子建站中快速调整背景颜色?
魔方云NAT建站如何实现端口转发?
如何在服务器上配置二级域名建站?
油猴 教程,油猴搜脚本为什么会网页无法显示?
浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】
jQuery 常见小例汇总
微信小程序 闭包写法详细介绍
Laravel怎么为数据库表字段添加索引以优化查询
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
文字头像制作网站推荐软件,醒图能自动配文字吗?
专业商城网站制作公司有哪些,pi商城官网是哪个?
Linux系统命令中screen命令详解
详解vue.js组件化开发实践
Laravel如何使用Eloquent进行子查询
Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
如何用PHP工具快速搭建高效网站?
html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】

