在使用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. ObjC宏定义小细节

    Macros A definition that takes arguments, particularly more than one, is often known as a macro: #de ...

  2. 用javascript简单封装AJAX

    1.创建一个AJAX引擎对象 var CreateAjax = function () { var xhr = null; if (window.XMLHttpRequest) { //非IE游览器 ...

  3. BZOJ 4521 手机号码

    SB数位dp. 我的貌似要特判9999999999的情况. #include<iostream> #include<cstdio> #include<cstring> ...

  4. 深入理解JavaScript系列:史上最清晰的JavaScript的原型讲解

    一说起JavaScript就要谈的几个问题,原型就是其中的一个.说了句大话,史上最清晰.本来是想按照大纲式的行文写一下,但写到后边感觉其实就一个概念,没有什么条理性,所以下面就简单按照概念解释的模式谈 ...

  5. linux命令:du

    1.命令介绍: du用来查看文件和目录的使用空间. 2.命令格式: du [选项] 文件 3.命令参数: -a或-all  显示目录中个别文件的大小. -b或-bytes  显示目录或文件大小时,以b ...

  6. WPF程序如何自定义启动窗口并传参

    首先,找到App.xaml,将Application标签中的StartupUri属性去掉; 然后可以在MainWindow.xaml.cs中重载构造函数,并添加自己想要的参数; 然后在App.xaml ...

  7. UVA 820 --- POJ 1273 最大流

    找了好久这两个的区别...UVA820 WA了 好多次.不过以后就做模板了,可以求任意两点之间的最大流. UVA 是无向图,因此可能有重边,POJ 1273是有向图,而且是单源点求最大流,因此改模板的 ...

  8. 一个简单的app自动登录Python脚本案例

  9. Ansible-Tower快速入门-4.以超级用户帐号登录【翻译】

    以超级用户帐号登录 首先,登录tower需要使用tower服务器所在的URL,格式如下:https://<tower server name>/ 注意:tower安装了一个自签名证书用于H ...

  10. 第三个Sprint冲刺github 与最终 github

    链接:https://github.com/22shaojiawen/the-third-sprint-project