• Hibernate之深入Hibernate的配置文件


    1.创建Configuration类的对象

    Configuration类的对象代表了应用程序到SQL数据库的映射配置。Configuration类的实例对象,提供一个buildSessionFactory()方法,该方法可以产生一个唯一的

    SessionFactory类的对象。

    根据使用的配置文件不同,得到这个代表了应用程序到SQL数据库的映射配置的Configuration类的对象方法也不同:

     (1)使用hibernate.cfg.xml配置文件

         Configuration  cfg   =   new  Configuration().configure();

         通过新建的Configuration类对象,调用configure()方法 ,会自动加载hibernate.cfg.xml配置文件,而hibernate.cfg.xml配置文件中又引入了映射文件,所以最终返回的Configuration类对象  拿到了应用程序到SQL数据库的映射配置。

      (2)使用hibernate.properties配置文件  

          Configuration  cfg  = new Configuration().addResource("News.hbm.xml").addResource("Bird.hbm.xml");

         通过新建的Configuration类对象,调用addResource("News.hbm.xml")的方式去加载映射文件,因为hibernate.properties配置文件中没有指定映射文件,只有这样主动的加载映射文件,才能得到 拿到了应用程序到SQL数据库的映射配置的Configuration类对象 。

          不推荐使用使用hibernate.properties配置文件,来获得Configuration类的对象。

        (3)不使用任何配置文件

          不使用任何文件,通过硬编码耦合的方式得到Configuration类对象 。

          这种方式不推荐,因为不灵活,代码量大。

    2.配置文件中的JDBC连接属性:

     其中推荐使用C3P0数据源的方式连接数据库:

    hibernate.connection.driver_class  属性  :   指定连接数据库的驱动类

    hibernate.connection.url  属性 : 指定连接数据库服务的URL

    hibernate.connection.username 属性 : 连接数据库的用户名

    hibernate.connection.pool_size 属性  :设置采用默认DriverManager方式时,连接池的最大并发数  ,若采用C3P0数据源的方式,则不用指定该属性

    hibernate.dialect 属性 :连接数据库所使用的方言  

    C3P0数据源属性:

    hibernate.c3p0.max_size 属性 :  连接池的最大连接数

    hibernate.c3p0.min_size 属性 :  连接池的最小连接数

    hibernate.c3p0.timeout 属性 :    连接的超时时长

    hibernate.c3p0.max_statements   属性 :   缓存Statement的数量

    3.配置文件中的数据库方言

    Hiberante底层依然使用SQL语句来执行数据库操作,虽然所有关系型数据库都支持标准的SQL语句,但是所有的数据库都对标准SQL进行了扩展。所有不同的数据库在SQL的语法细节上有所差异 ,从而形成了数据库方言.

    只要我们设置了合适的数据库方言,Hibernate就会自动应付底层数据库访问的上的细节差异。

    hibernate.dialect 属性 :连接数据库所使用的方言  

    常用数据库的方言  可以网络查询。

    4.可选的JNDI数据源的连接属性

      可以使用默认的DriverManager ,也可使用C3P0数据源,也可使用JNDI数据源的方式来连接数据库。

       如果无须Hibernate自己管理数据源,而是直接访问容器管理数据源,Hibernate可以使用JNDI (Java Naming  Directory  Interface ,java命名目录接口)数据源。

    相关属性:

    hibernate.connection.datasource 属性  :  数据源JNDI名字

    hibernate.jndi.url 属性  :指定JNDI提供者的URL  .如果该应用引入了JNDI  ,则无须指定该属性

    hibernate.jndi.class 属性 : 指定JNDI实现类  .如果该应用引入了JNDI  ,则无须指定该属性

    hibernate.connection.username 属性  : 数据库用户名

    hibernate.connection.password 属性  :数据库的密码

    5.配置文件中的Hibernate事务 属性

    6.配置文件中二级缓存相关属性  

    7.配置文件中外连抓取属性 

    8.配置文件中指定映射文件

    保证映射文件,和它对应的持久化类文件 在同一个目录中。

    <mapping resource="org/fkjava/test/News.hbm.xml" />

    9.其他常用属性  :

    hibernate.show_sql 属性 :是否在控制台输出Hibernate生成的SQL语句 。  可选值  true 和 false

    hibernate.format_sql 属性 :是否将SQL语句转化成形式良好的格式  。可选值 true 和 false

    hibernate.hbm2ddl.auto 属性  :当创建SessionFactory时,是否根据映射文件中的配置自动创建数据表。可选值  update ,create 和create-drop。其中如果使用create-drop值  当显示关闭 SessionFactory类的对象时,将drop刚创建的数据表。

  • 相关阅读:
    Python基础----内置函数补充、匿名函数、递归函数
    为arm-linux开发板挂载基于nfs的根文件系统
    vsftp上传553 Could not create file错误解决
    在itop4412移植linux4.14和设备树遇到的问题及解决
    itop4412uboot中支持usbhub
    上下界网络流
    lca(最近公共祖先(在线)) 倍增法详解
    lca(最近公共祖先(离线))
    最小费用最大流
    spfa模板+讲解
  • 原文地址:https://www.cnblogs.com/wangliyue/p/4133086.html
Copyright © 2020-2023  润新知