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 】
相关推荐:
5种Android数据存储方式汇总
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
教你用AI将一段旋律扩展成一首完整的曲子
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】
Linux系统运维自动化项目教程_Ansible批量管理实战
网站建设整体流程解析,建站其实很容易!
Laravel怎么实现微信登录_Laravel Socialite第三方登录集成
如何在Windows服务器上快速搭建网站?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
JS碰撞运动实现方法详解
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
Android自定义listview布局实现上拉加载下拉刷新功能
如何在Windows虚拟主机上快速搭建网站?
郑州企业网站制作公司,郑州招聘网站有哪些?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
如何在宝塔面板创建新站点?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
奇安信“盘古石”团队突破 iOS 26.1 提权
Laravel如何使用Blade模板引擎?(完整语法和示例)
轻松掌握MySQL函数中的last_insert_id()
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】
香港服务器租用费用高吗?如何避免常见误区?
Laravel如何发送系统通知?(Notification渠道示例)
Bootstrap整体框架之JavaScript插件架构
如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】
如何为不同团队 ID 动态生成多个非值班状态按钮
个人摄影网站制作流程,摄影爱好者都去什么网站?
如何快速生成ASP一键建站模板并优化安全性?
如何批量查询域名的建站时间记录?
js实现获取鼠标当前的位置
详解jQuery中基本的动画方法
高防服务器:AI智能防御DDoS攻击与数据安全保障
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
Linux安全能力提升路径_长期防护思维说明【指导】
如何快速辨别茅台真假?关键步骤解析
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
如何快速查询网址的建站时间与历史轨迹?
html5的keygen标签为什么废弃_替代方案说明【解答】
如何用美橙互联一键搭建多站合一网站?
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)

