在使用hibernate之前要首先对hibernate进行一些基础的配置信息,像映射文件XXX.hbm.xml  XXX代表当前的domain的模型类名

 <?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com._520it.day01._01_hello.domain">
<!-- 映射关系 -->
<class name="User" table="t_user">
<id name="id" column="uid">
<generator class="native"/>
</id>
<property name="name" column="uname"/>
<property name="salary" column="usalary"/>
<property name="hiredate" column="uhiredate"/>
</class>
</hibernate-mapping>

下一步配置hibernate.cfg.xml文件

Hibernate3 在配置的时候,需要创建一个hibernate.cfg.xml文件,然后配置session-factory,把连接数据库的基本信息都以属性的形式罗列出来

 <!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration>
<session-factory>
<!-- 包含连接数据库的基本信息 -->
<!-- 连接数据库的方言 -->
       <!--这里注意在property 的name 和value中不能有空格的出现--> 
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
<!-- 连接数据库的驱动 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- 连接数据库的url -->
<property name="hibernate.connection.url">jdbc:mysql:///hibernate</property>
<property name="hibernate.connection.username">root1</property>
<property name="hibernate.connection.password">admin1</property>
       
<!-- 是否显示sql语句 -->
<property name="hibernate.show_sql">true</property> <!-- 关联映射文件 -->
<mapping resource="com/_520it/day01/_01_hello/domain/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>

而在Hibernate4中,官方建议在另外创建一个hibernate.properties文件,在这个配置文件里,存放和数据库连接的基本信息

即:把上述文件中的对应的参数在这里写出来,同样不要有空格的出现

 hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
hibernate.dialect=org.hibernate.dialect.MySQLMyISAMDialect
hibernate.connection.driver_class=com.mysql.jdbc.Driver
hibernate.connection.url=jdbc:mysql:///hibernate
hibernate.connection.username=root1
hibernate.connection.password=admin1

这个时候在原来的hibernate.cfg.xml文件中就只剩下了关联映射文件的配置信息

 <!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!-- 当用这种方式的时候需要配置一个hibernate.properties文件 -->
<hibernate-configuration>
<session-factory>
<!-- 关联映射文件 -->
<mapping resource="com/_520it/day01/_01_hello/domain/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>

相比之下,hibernate3中的所有信息都在一个配置文件中,比较集中,结构清晰,hibernate4中,文件分开进行配置,便于管理,以后如果想要添加多个映射文件,也只需要在bibernate.cfg.xml文件中进行添加就好了,不用再去管数据库的连接配置文件

在hibernate3中创建sessionFactory

 //1.创建配置对象
Configuration config = new Configuration();
//2.读取配置文件
config.configure();
//3.创建sessionFactory对象
SessionFactory sessionFactory = config.buildSessionFactory();
//4.获取session对象
Session session =sessionFactory.openSession();

但是这个方法,官方已经不建议使用,目前依然可以使用

在hibernate4中,这个方法需要在创建sessionFactory的时候传入一个registy的参数

//1.创建配置对象
Configuration config = new Configuration();
//2.读取配置文件
config.configure();
//3.创建serviceRegistry对象
ServiceRegistry registry = new StandardServiceRegistryBuilder().build();
//4.创建sessionFactory对象
SessionFactory sessionFactory = config.buildSessionFactory(registry);
//5.获取session对象
Session session =sessionFactory.openSession();

以上两种方法都可以使用,仅凭个人喜好

Hibernate3 和Hibernate4 在配置文件上的区别的更多相关文章

  1. AndroidStudio2.2 Preview3中NDK开发之CMake和传统 JNI在目录结构和配置文件上的区别(转载)

    自从AndroidStudio更新到2.2,就有了CMake和传统JNI两种开发NDK的方法,主要就是在目录结构和build.gradle上的区别,下面我们将分别介绍目录区别和build.gradle ...

  2. hibernate3 和hibernate4的一点小变动

    这两天在做下学籍管理系统,由于hibernate是之前学的,所以这次开发没意识到hibernate3跟hibernate4版本更换的一些变动. 就照搬之前学hibernate3的代码来用,尽管知道该项 ...

  3. iPhone与iPad在开发上的区别

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  4. C# 引用类型与值类型在编码上的区别

    一.引入类型与值类型简介 值类型:直接存放于栈中,取的时候是直接取得值.值类型继承自System.ValueType.(自定义对象) 引用类型:存在于托管堆中,取的时候是从栈取该对象的地址,然后用这个 ...

  5. Appium和Robotium在文字输入上的区别

    Appium和Robotium在文字输入上的区别   Appium和Robotium在对文本框进行输入时有一定的区别: Appium在输入文字时需要调用系统键盘 Robotium在输入文字是根本不需要 ...

  6. IIS配置文件上传大小限制

    2018-08-28 IIS配置文件上传大小限制 问题:上传文件过大导致上传不了,直接在webconfig里做以下配置会导致程序出错,这个需要在IIS里配置 <system.web> &l ...

  7. win7下利用ftp实现华为路由器的配置文件上传和下载

    win7下利用ftp实现华为路由器的配置文件上传和下载 1.  Win7下ftp的安装和配置 (1)开始—>控制面板—>程序—>程序和功能—>打开或关闭Windows功能 (2 ...

  8. WITH RECOMPILE 和 OPTION(RECOMPILE) 使用上的区别

    在考虑重编译T-SQL(或者存储过程)的时候,有两种方式可以实现强制重编译(前提是忽略导致重编译的其他因素的情况下,比如重建索引,更新统计信息等等), 一是基于WITH RECOMPILE的存储过程级 ...

  9. python2和3在处理字符串上的区别

    python2和3在处理字符串上的区别   python2和python3对于字符串的处理有很大的区别 熟悉了python2的写法用python3时真的会遇到很多问题啊…… 区别 python2中有一 ...

随机推荐

  1. IOS导航栏颜色渐变与常用属性

    (转:http://www.cnblogs.com/Lingchen-start/archive/2015/10/23/4904361.html) 今年很忙,忙的写日志的时间都很少.  少的可怜. 自 ...

  2. 对Spring AOP的理解

    AOP(Aspect-Oriented Programming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善. AOP在spring ...

  3. img标签中的alt属性在IE6/7/8中的兼容问题

    W3C HTML 4.01 规范规定,alt 属性指定了在 User Agents 不能显示图片.表单和 applets 的时候显示的替换文字.alt 属性在 IE6 IE7 IE8(Q) 下具有双重 ...

  4. 第五章 搭建S3C6410开发板的测试环境

    在PC上可以开发Linux驱动,重新编译成ARM架构的Linux驱动模块,但最后还是要在开发板上进行测试.目前最流行的是基于三星S3C6410 ARM11架构的开发板,很多厂商在其基础上进行了扩展,开 ...

  5. GZipStream 压缩和解压

    GZipSteam: GZip 数据格式,它使用无损压缩和解压缩文件的行业标准算法 类 GZipStream有两种模式:CompressionMode.Compress和CompressionMode ...

  6. php正则替换:

    1.要求: 对于: $str = '<p></p><p style="text-indent:241px"><strong>< ...

  7. PYTHON 链接 Oracle

    一.  cx_Oracle Python 连接Oracle 数据库,需要使用cx_Oracle 包. 该包的下载地址:http://cx-Oracle.sourceforge.net/ 下载的时候,注 ...

  8. mozilla firefox 安装flash player

    下载 flash player http://get.adobe.com/cn/flashplayer/ for linux  .tar.gz文件 install_flash_player_11_li ...

  9. Android 标题栏菜单设置与应用(popupWindow的应用)

    效果图

  10. Cannot forward after response has been committed

    项目:蒙文词语检索 日期:2016-05-01 提示:Cannot forward after response has been committed 出处:request.getRequestDis ...