快速了解hibernate配置文件与映射文件

  

Hibernate是一个彻底的ORM(对象关系映射,对象关系映射)开源框架。
  

  

我们先看一下官方文档所给出的,Hibernate体系结构的高层视图:
  

  

其中阿宝=POJO +映射文件
  

  

根据体系结构视图可以了解到整个利用Hibernate框架实现的项目包括整个重要的配置文件:
  

  

Hibernate配置文件:实现Hibernate基础配置,是Hibernate能够友好的与DB进行交互基础;开发时放置src目录下,取名为:hibernate.cfg.xml (hibernate.properties)
  Hibernate映射文件:实现POJO与数据库表格的映射配置;为了维护方便一般将其放置和相对应的POJO同一目录下,取名为POJOName.hbm。xml。虽然一个映射文件中可以配置多个POJO与数据库表的映射关系但是还是建议一个映射文件中只配置一个POJO与数据库表的映射关系。
  

  

<强>一,Hibernate配置文件详解
  

  

  

个人建议使用XML,因为属性中不能配置关联的映射文件,在后续的实现中会带来一些没必要的编码;
  

  

XML (hibernate.cfg.xml)文件详解:

        & lt; & # 63; xml version=" 1.0 " encoding=" GBK " & # 63;比;   & lt; !——指定Hibernate配置文件的DTD信息——比;   & lt; !DOCTYPE hibernate配置公共   ”——//Hibernate/Hibernate配置3.0 DTD//EN "   “http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd”在   & lt; !——hibernate配置是连接配置文件的根元素——比;   & lt; hibernate-configuration>   & lt; session-factory>   & lt; !——指定连接数据库所用的驱动——比;   & lt;属性名=" connection.driver_class "祝辞com.mysql.jdbc.Driver   & lt; !——指定连接数据库的url, hibernate连接的数据库名——比;   & lt;属性名=" connection.url "祝辞jdbc: mysql://localhost/数据库名& lt;/property>   & lt; !——指定连接数据库的用户名——比;   & lt;属性名=" connection.username "祝辞root   & lt; !——指定连接数据库的密码——比;   & lt;属性名=" connection.password "在32147 & lt;/property>   & lt; !——指定连接池里最大连接数——比;   & lt;属性名=" hibernate.c3p0.max_size "祝辞20 & lt;/property>   & lt; !——指定连接池里最小连接数——比;   & lt;属性名=" hibernate.c3p0.min_size "祝辞1 & lt;/property>   & lt; !——指定连接池里连接的超时时长——比;   & lt;属性名=" hibernate.c3p0.timeout "在5000 & lt;/property>   & lt; !——指定连接池里最大缓存多少个声明对象——比;   & lt;属性名=" hibernate.c3p0.max_statements "在100 & lt;/property>   & lt;属性名=" hibernate.c3p0.idle_test_period "在3000 & lt;/property>   & lt;属性名=" hibernate.c3p0.acquire_increment "祝辞2 & lt;/property>   & lt;属性名=" hibernate.c3p0.validate "祝辞true   & lt; !——指定数据库方言——比;   & lt;属性名=胺窖浴弊4莖rg.hibernate.dialect.MySQLInnoDBDialect   & lt; !,根据需要自动创建数据表——比;   & lt;属性名=" hbm2ddl.auto "祝辞update   & lt; !——显示Hibernate持久化操作所生成的SQL——比;   & lt;属性名=" show_sql "祝辞true   & lt; !——将SQL脚本进行格式化后再输出——比;   & lt;属性名=" hibernate.format_sql "祝辞true   & lt; !——罗列所有的映射文件——比;   & lt;映射资源="映射文件路径/News.hbm.xml”/比;   & lt;/session-factory>   & lt;/hibernate-configuration>之前      

  

属性(hibernate.properties)文件详解

        # # MySQL   #方言   冬眠。方言org.hibernate.dialect.MySQLDialect   冬眠。方言org.hibernate.dialect.MySQLInnoDBDialect   冬眠。方言org.hibernate.dialect.MySQLMyISAMDialect   #驱动   hibernate.connection。driver_class com.mysql.jdbc.Driver   #数据库地址   hibernate.connection。jdbc url: mysql://127.0.0.1/datdabseName   #用户名   hibernate.connection。用户名根   #密码   hibernate.connection。密码12345   #是否在控制台输出sql语句   冬眠。show_sql真/假   #设置当创建sessionfactory时,是否根据映射文件自动建立数据库表。create-drop:表示关闭sessionfactory时,将删除刚建的数据库表。该属性可以是更新/create-drop/创建   hibernate.hbm2ddl。自动更新/create-drop/创建   # # # # # # # # # # # # # # # # # # # # # # # # # # #   # # # C3P0连接池C3P0连接池# # #   # # # # # # # # # # # # # # # # # # # # # # # # # # #   #连接池最大链接数   hibernate.c3p0。max_size 2   #连接池最小连接数   hibernate.c3p0。min_size 2   #连接池连接的超时时长   hibernate.c3p0。超时5000   #缓存报表的数量   hibernate.c3p0。max_statements 100   hibernate.c3p0。idle_test_period 3000   hibernate.c3p0。acquire_increment 2   hibernate.c3p0。验证真/假   # # # # # # # # # # # #   # # # JNDI (java命名目录接口)java命名目录接口# # #   # # #当无需冬眠自己管理数据源而是直接访问容器管理数据源使用JNDI   # # # # # # # # # # # #   #指定数据源JNDI名字   hibernate.connection。数据源dddd   #文件系统下   hibernate.jndi。类com.sun.jndi.fscontext.RefFSContextFactory   hibernate.jndi。url文件:/#网络   #指定算法InitialContextFactory的实现类,该属性也是可选的。如果JNDI与Hibernate持久化访问的代码处于同一个应用,无需指定该属性   hibernate.jndi。类com.ibm.websphere.naming.WsnInitialContextFactory   #指定JNDI提供者的URL,该属性可选如果JNDI与Hibernate持久化访问的代码处于同一个应用,无需指定该属性   hibernate.jndi。url iiop://localhost: 900/#指定链接数据库用户名   hibernate.connection。用户名根   #指定密码   hibernate.connection。密码1111   #指定方言   冬眠。方言org.hibernate.dialect.MySQLDialect   #######################   # # #事务API事务属性说明# # #   #######################   #指定是否在事务结束后自动关闭会话   hibernate.transaction。auto_close_session真/假   #指定会话是否在事务完成后自动将数据刷新到底层数据库   hibernate.transaction。flush_before_completion真/假   # #指定hibernate所有的事务工厂的类型,该属性必须是TransactionFactory的直接或间接子类   hibernate.transaction。factory_class org.hibernate.transaction.JTATransactionFactory   hibernate.transaction。factory_class org.hibernate.transaction.JDBCTransactionFactory   # #该属性值是一个JNDI名,hibernate将使用JTATTransactionFactory从应用服务器中取出JTAYserTransaction   jta。UserTransaction jta/UserTransaction接口   jta。UserTransaction javax.transaction.UserTransaction   jta。UserTransaction UserTransaction接口   # #该属性值为一个transactionManagerLookup类名,当使用JVM级别的缓存时,或在JTA环境中使用小矿脉生成器策略时,需要该类   hibernate.transaction。null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

快速了解hibernate配置文件与映射文件