Welcome 微信登录

首页 / 数据库 / MySQL / Hibernate之配置文件

可持久化对象有以下三种状态:临时状态(Transient):对象在保存进数据库之前为临时状态,这时数据库中没有该对象的信息,如果没有持久化,程序退出后临时状态的对象信息将会丢失。随时可能被垃圾回收器回收(在数据库中没有于之对应的记录,应为是new初始化),而执行save()方法后,就变为Persistent对象(持久性对象),没有纳入session的管理,内存中一个对象,没有ID,缓存中也没有持久化状态(Persistent):对象在保存进数据库后或者从数据库加载后、并且没有脱离Session时为持久化状态,这时候数据库中有该对象的信息。由于还在Session中,持久化状态的对象可以执行任何有关数据库的操作,在数据库有存在的对应的记录,纳入session管理。在清理缓存(脏数据检查)的时候,会和数据库同步。内存中有、缓存中有、数据库有(ID)分离状态(Detached):分离状态是对象曾经出于持久化状态,但是现在已经离开Session了。虽然分离状态的对象有id值,但是已经无法执行有关数据库的操作了。例如,读取延迟加载的集合属性,可能会抛出LazyInitalizeException。Hibernate整体理解 http://www.linuxidc.com/Linux/2014-07/104405.htmHibernate的映射机制  http://www.linuxidc.com/Linux/2014-12/110265.htmHibernate事务隔离机制(乐观锁-悲观锁)  http://www.linuxidc.com/Linux/2015-01/111902.htm 

配置文件

Hibernate同时支持动态配置 XML配置Configurationcfg = new Configuration().addResource(“com/clf/Cat.hbm.xml”);//注解配置Configuration cfg= new Configuration().addClass(com.clf.bean.cat.Class); 通过setProperty(“hibernate.dialect”,”org.hibernate.dialect.MySQLDialect”)类似的方法可以动态地设置Hibernate参数,还可以用addProperties(Propertiesp)批量的添加参数

常规配置

Hibernate的配置文件可以为XML或者properties文件,默认的配置文件名称为hibernate.cfg.xml或者hibernate.properties,位于classpath下面。properties文件中的参数是具有hibernate前缀的,而xml文件没有hibernate.connection.driver_class= com.mysql.jdbc.Driver
hibernate.connection.url= jdbc:mysql://localhost:3306/hibernate?characterEncoding=UTF-8
hibernate.connection.username= root
hibernate.connection.password= admin
hibernate.dialect= org.hibernate.dialect.MySQLDialect
hibernate.show_sql= true
hibernate.hbm2ddl.auto= create
hibernate.current_session_context_class= thread <?xml  version="1.0″ encoding="UTF-8″?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory> <!--为true表示将Hibernate发送给数据库的sql显示出来 -->
 <property name="show_sql">true</property> <!-- SQL方言,这边设定的是MySQL -->
 <property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property> <!-- 一次读的数据库记录数 -->
 <property name="jdbc.fetch_size">50</property> <!-- 设定对数据库进行批量删除 -->
 <property name="jdbc.batch_size">30</property> <!--驱动程序-->
 <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <!--JDBC URL -->
 <property name="connection.url">jdbc:mysql://localhost/dbname?characterEncoding=gb2312</property> <!-- 数据库用户名-->
 <property name="connection.username">root</property> <!– 数据库密码–>
 <property name="connection.password">root</property> <!--映射文件 -->
 <mapping resource="com/amigo/pojo/User.hbm.xml"/>
 <mapping resource="com/amigo/pojo/Org.hbm.xml"/>
</session-factory>
</hibernate-configuration>配置数据源<session-factory>
<!--下面为JNDI的配置 -->
<!-- 数据源的名称 -->
<property name="connection.datasource">java:comp/env/jdbc/datasourcename</property><!-- 数据源的提供者  -->
<property name="hibernate.jndi.url"></property><!-- 数据源的实现类  -->
<property name="hibernate.jndi.class"></property><!-- Hibernate的连接加载类 -->
<property name="connection.provider_class">net.sf.hibernate.connection.DatasourceConnectionProvider</property><property name="dialect">net.sf.hibernate.dialect.SQLServerDialect</property><!--映射文件 -->
<mapping resource="com/amigo/pojo/User.hbm.xml"/>
<mapping resource="com/amigo/pojo/Org.hbm.xml"/>
</session-factory>

c3p0连接池

c3p0连接池是Hibernate推荐使用的连接池,若需要使用该连接池时,需要将c3p0的jar包加入到classpath中。c3p0连接池的配置示例如下:<session-factory>
<property name="connection.driver_class">……</property><!-- JDBC URL -->
<property name="connection.url">……</property><!-- 数据库用户名 -->
<property name="connection.username">user</property><!-- 数据库密码 -->
<property name="connection.password">pass</property><property name="c3p0.min_size">5</property><property name="c3p0.max_size">20</property><property name="c3p0.timeout">1800</property><property name="c3p0.max_statements">50</property>
……
</session-factory>在上述配置中,Hibernate根据配置文件生成连接,再交给c3p0管理。更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2015-03/114676p2.htm
  • 1
  • 2
  • 3
  • 下一页
MySQL如何跟踪sql语句OGG-01496 OGG-01031 错误解决相关资讯      hibernate  Hibernate配置文件 
  • Hibernate利用@DynamicInsert和@  (今 07:09)
  • Hibernate某些版本(4.3)下报错   (04月20日)
  • Hibernate 5.1.0 正式版发布下载  (02月12日)
  • Hibernate的get和load的区别  (08月07日)
  • Hibernate3.1.2_中文文档PDF  (02月17日)
  • Hibernate ORM 5.0.6 发布下载  (12/17/2015 17:12:55)
本文评论 查看全部评论 (0)
表情: 姓名: 字数