文档章节

Hibernate4教程二:基本配置

乐在克里特
 乐在克里特
发布于 2017/02/23 13:53
字数 927
阅读 3
收藏 0
点赞 0
评论 0
可编程的配置方式一:
如果在配置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包。
 
 

© 著作权归作者所有

共有 人打赏支持
乐在克里特
粉丝 15
博文 268
码字总数 394729
作品 0
杭州
程序员
史上最简单的Hibernate4视频教程(附源码和笔记)

Hibernate4是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合...

2846613430
2016/04/08
1K
0
利用Hibernate Tools生成与数据库表对应的带注解实体类

主要分三个阶段。1.连接数据源;2.创建Hibernate配置文件;3.生成实体类。 一、连接数据源 1.在Eclipse的菜单栏,选择"Window"->"Show View"->"Other"->"Date Source Exploer"-"OK",将会显示...

巨轮
2016/01/15
1K
0
Spring Security教程

Spring Security是一个灵活和强大的身份验证和访问控制框架,以确保基于Spring的Java Web应用程序的安全。 在这些简单Spring Security4 一系列教程中的 Spring Security 示例是基于新的Sprin...

易百教程
2016/08/30
544
1
整合hibernate4到spring4mvc框架

1.总体设计思路 写一个HibernateDao的公共接口HibernateCommonDao,实现基本的增删改查HibernateCommonDaoImpl,所有的具体业务类DaoImpl都继承自HibernateCommonDaoImpl并且implements它自己...

阿宇_
2015/09/15
617
0
注意Hibernate4在开发当中的一些改变

注意Hibernate4在开发当中的一些改变 Hibernate4的改动较大只有spring3.1以上版本能够支持,Spring3.1取消了HibernateTemplate,因为Hibernate4的事务管理已经很好了,不用Spring再扩展了。这...

千江
2013/05/24
0
1
hibernate4 配合分布式缓存memcache的痛苦配置

hibernate最强大的莫过于缓存功能,配上分布式的memcache应该性能飞快,结果各种麻烦 基本配置网上都有,就不说了 hibernate3缓存的配置 <prop key="hibernate.cache.provider_class">com.g...

程序猿_哲
2014/03/25
0
1
J2EE中整合Spring4和hibernate4

J2EE中整合Spring4和hibernate4,在这我只给出初略的步骤了, 注:先单独搭建好Spring4和hibernate4之后再进行俩者的整合。 整体是这样,如下图(Spring.User.xml是专门为user模块准备的Sprin...

汉斯-冯-拉特
2016/04/23
73
0
spring3+hibernate4搭建

本框架以商品购物平台项目为例,用到spring3mvc和hibernate4,主要搭建步骤如下: 1、搭建spring3MVC 2、整合hiebernate4 【搭建spring3MVC】 (1)放入sping3所需的库、commons-logging-1.0...

java-苦苦甜甜
2012/10/18
0
3
注意Hibernate4在开发当中的一些改变

Hibernate4的改动较大只有spring3.1以上版本能够支持,Spring3.1取消了HibernateTemplate,因为Hibernate4的事务管理已经很好了,不用Spring再扩展了。这里简单介绍了hibernate4相对于hiber...

Ida62
2014/03/13
0
0
hibernate4中用ehcache3.0作为二级缓存

在这就只给出初略的步骤了: 注:我下载了hibernate4文件之后,在lib/optional目录下,有个ehcache文件夹,这里面就有我们使用ehcache时所需的ehcache的jar。 将mysql...jdbc.jar、hibernate...

汉斯-冯-拉特
2016/04/24
87
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

实现异步有哪些方法

有哪些方法可以实现异步呢? 方式一:java 线程池 示例: @Test public final void test_ThreadPool() throws InterruptedException { ScheduledThreadPoolExecutor scheduledThre......

黄威
今天
0
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

六库科技
今天
0
0
牛客网刷题

1. 二维数组中的查找(难度:易) 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入...

大不了敲一辈子代码
今天
0
0
linux系统的任务计划、服务管理

linux任务计划cron 在linux下,有时候要在我们不在的时候执行一项命令,或启动一个脚本,可以使用任务计划cron功能。 任务计划要用crontab命令完成 选项: -u 指定某个用户,不加-u表示当前用...

黄昏残影
昨天
0
0
设计模式:单例模式

单例模式的定义是确保某个类在任何情况下都只有一个实例,并且需要提供一个全局的访问点供调用者访问该实例的一种模式。 实现以上模式基于以下必须遵守的两点: 1.构造方法私有化 2.提供一个...

人觉非常君
昨天
0
0
《Linux Perf Master》Edition 0.4 发布

在线阅读:https://riboseyim.gitbook.io/perf 在线阅读:https://www.gitbook.com/book/riboseyim/linux-perf-master/details 百度网盘【pdf、mobi、ePub】:https://pan.baidu.com/s/1C20T......

RiboseYim
昨天
1
0
conda 换源

https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mir......

阿豪boy
昨天
1
0
Confluence 6 安装补丁类文件

Atlassian 支持或者 Atlassian 缺陷修复小组可能针对有一些关键问题会提供补丁来解决这些问题,但是这些问题还没有放到下一个更新版本中。这些问题将会使用 Class 类文件同时在官方 Jira bug...

honeymose
昨天
0
0
非常实用的IDEA插件之总结

1、Alibaba Java Coding Guidelines 经过247天的持续研发,阿里巴巴于10月14日在杭州云栖大会上,正式发布众所期待的《阿里巴巴Java开发规约》扫描插件!该插件由阿里巴巴P3C项目组研发。P3C...

Gibbons
昨天
1
0
Tomcat介绍,安装jdk,安装tomcat,配置Tomcat监听80端口

Tomcat介绍 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。 java程序写的网站用tomcat+jdk来运行...

TaoXu
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部