Hibernate4教程二:基本配置
来源:互联网 发布:淘宝买虚拟物品被关闭 编辑:程序博客网 时间:2024/06/03 19:12
可编程的配置方式一:
如果在配置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) //全限定名,但是该代码和class在同路径下可直接写Item.class
.addClass(org.hibernate.auction.Bid.class);
这种方式消除了任何对文件名的硬编码。
可编程的配置方式二:
还可以通过编程的方式来指定配置属性:
Configuration cfg = new Configuration()
.addClass(org.hibernate.auction.Item.class)
.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLInnoDBDialect")
.setProperty("hibernate.connection.datasource", "java:comp/env/jdbc/test")
.setProperty("hibernate.order_updates", "true");
其他可以传入配置属性的方式:
1:properties文件
2:xml文件
3:设置Java的系统属性,形如:java –Dproperty=value
另外要注意一点:
org.hibernate.cfg.Configuration 实例被设计成启动期间(startup-time)对象,一旦SessionFactory 创建完成它就被丢弃了。
与数据库连接的配置有两种方法,一种是JDBC,一种是DataSource
JDBC的配置
示例:
<property ame="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="connection.url">jdbc:oracle:thin: @localhost :1521:orcl</property>
<property name="connection.username">javass</property>
<property name="connection.password">javass</property>
数据源的配置
示例如下:
<property name="connection.datasource">java:/javassDs</property>
连接池c3p0的配置
由于Hibernate自己实现的连接池不太好,在项目中,建议使用工业级的连接池,比如:c3p0,Hibernate发行包中带有c3p0,下面就是其基本配置示例:
<property name= "connection.driver_class">oracle.jdbc.driver.OracleDriver</property><property name= "connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property><property name= "connection.username">javass</property><property name= "connection.password">javass</property> <!-- 使用c3p0连接池配置连接池提供的供应商--> <property name="connection.provider_class"> org.hibernate.connection.C3P0ConnectionProvider //是依据hbm3.6版本的</property><property name= "c3p0.min_size">5</property><property name= "c3p0.max_size">20</property><property name= "c3p0.timeout">180</property><property name= "c3p0.max_statements">50</property>
为了解决数据库中元素命名冲突的问题,引入catalog和schema来解决。
从概念上说,一个数据库系统包含多个Catalog,每个Catalog又包含多个Schema,而每个Schema又包含多个数据库对象(表、视图、字段等)。
n比较简单而常用的实现方式是使用数据库名作为Catalog名,使用用户名作为Schema名,各种数据库系统对Catalog和Schema的支持具体可参见下表:
为了让应用在JDBC事务和JTA事务环境中可以移植,建议使用可选的Hibernate Transaction 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、log4j version 1.2、JDK 1.4 logging、JCL 或 logback)上。
2:需要在 classpath 里加入 slf4j-api.jar 和你选择的绑定的JAR 文件(使用Log4J 时加入slf4j-log4j12.jar),当然别忘了加入log4j自己的jar包。
http://sishuok.com/forum/blogPost/list/2465.html;jsessionid=487FBED87666D05D4096075DBE429503
阅读全文
0 0
- Hibernate4教程二:基本配置
- Hibernate4教程二:基本配置(2)
- Hibernate4教程二:基本配置(3)
- Hibernate4教程三:Hibernate的基本开发
- hibernate4简要配置及基本使用
- Hibernate4教程六(2):基本实现原理
- JFreeChart 基本教程 二
- hibernate4配置
- Hibernate4实战 之 第二部分:Hibernate的基本配置
- Hibernate4实战 之 第二部分:Hibernate的基本配置
- Hibernate4实战 之 第二部分:Hibernate的基本配置
- Hibernate4实战 之 第二部分:Hibernate的基本配置
- Hibernate4实战 之 第二部分:Hibernate的基本配置
- Hibernate4实战 之 第二部分:Hibernate的基本配置
- Hibernate4实战 之 第二部分:Hibernate的基本配置
- Hibernate4实战 之 第二部分:Hibernate的基本配置
- Hibernate4实战 之 第二部分:Hibernate的基本配置
- SSH(Struts2+Spring4+Hibernate4)框架教程之配置篇
- SpringMVC学习(12):基于Hibernate+Spring+Spring MVC+Bootstrap的管理系统实现
- IT面试技巧(1)
- Java中的动态代理(jdk和cglib)
- 数据结构与算法07 之哈希表
- 数据结构和算法06 之2-3-4树
- Hibernate4教程二:基本配置
- 对静态区,栈,堆的理解
- css中的文本字间距离、行距、overflow
- IE的debug工具对程序进行debug跟踪JS代码
- Java 编写过滤手机号码或者固定电话的工具类
- Java面试宝典(6)混合(前端 + 数据库)
- SpringMVC学习(9):实现注解式权限验证
- jsp与httpservlet的微小区别
- 数据结构与算法01 之数组
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
东莞汽车总站
东莞站是哪个火车站
东莞高铁站在哪
东莞哪里好玩
东莞公交车查询
广东东莞招聘信息
东莞新楼盘开盘信息
东莞有多少个镇区
东莞总站网上订票
东莞公交查询
东莞有什么好玩的地方
东莞工作好找吗
东莞理工学校
东莞有什么好玩的景点
东莞有几个高铁站
东莞婚姻介绍所
东莞培训学校
东莞培训机构
东莞一日游必去的地方
东莞杀臭虫公司
东莞日报登报
东莞到美国旅游
东莞灭蟑螂公司
东莞东坑镇医院
广东东莞学校
东莞神经科医院
东莞大朗碧桂园
东莞大朗到深圳龙岗
东莞到潮州货运
东莞旅行社电话
从东莞到珠海
东莞到中山古镇
东莞医院有哪些
东莞什么医院好
广东东莞大朗
东莞到欧洲旅游
广东东莞怎么样
深圳龙华到东莞大朗
东莞厚街公司
东莞去杭州旅游
东莞虎门镇花店