Hibernate的配置文件说明

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ITdevil/article/details/84074800

记录下来,供自己日后参考

映射文件解释 xxx.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--导入约束  -->
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"a
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
 
<!-- package属性是用于设定包的名称,接下来改配置文件中凡是用到此包中的对象时可以省略 -->   
<hibernate-mapping package="com.hei.domin">
    <!--class标签
         	作用:建立实体和表之间的对应关系 
			属性:
                  name:指定实体类的名称
                  table:制定数据库表的名称
     -->
    <class name="Customer" table="cst_customer">
    	<!--id标签 
   	     	 作用:用于映射主键
   	     	 属性:
   	     	 	name:指定的是javaBean中的属性的名称,也就是get/set方法后面的部分
   	     	 	column:指定的是数据库表的字段名称(可以省略:默认表中的列名与实体类中的列名是一样的)
    	 -->
         <id name="custId" column="cust_id">
         	 	<!--generator标签 
         	 	    作用:配置主键的生成策略
         	 	    属性:
         	 	    class:指定生成方式的取值
         	 	            取值之一:native,使用本地数据库的自动增长能力
   	 	            mysql数据库的自动增长能力是为了让某一列自动增+1,但不是所有的数据库都支持这种方式   
         	 	 -->
              <generator class="native"></generator>
         </id>
         <!-- property标签
              	作用:映射其他字段
              	属性:
              		name:指定javaBean属性的名称。和id标签的name属性含义一致
              		column:制定数据库表中的字段名称
          -->
         <property name="cust_name"  ></property>
		 <property name="cust_source"  ></property>
		 <property name="cust_industry"  ></property>
		 <property name="cust_level"  ></property>
		 <property name="cust_phone" column="cust_phone" ></property>
    </class>
</hibernate-mapping>    

  配置文件的解析hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">


<hibernate-configuration>
	<!-- 
	  SessionFactory就是一个工厂,用于生产Session对象的
	  Session就是我们使用Hibernate操作数据库的核心对象
	  	明确:
	  		创建SessionFactory由三部分组成,缺一不可
	  		1.连接数据库的基本信息
	  		2.hibernate的基本配置
	  		3.映射文件的位置
	 -->
	<session-factory>
	     <!-- 1.连接数据库的基本信息 -->
	     <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>   
	     <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
	     <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/day55</property>
	     <property name="hibernate.connection.username">root</property>
	     <property name="hibernate.connection.password">root</property> 
	     <!-- 2.hibernate的基本配置 -->
	     
	     <!-- #将hibernate生成的sql语句打印到控制台-->
	     <property name="hibernate.show_sql">true</property>
		 <!-- #将控制台的sql语句进行格式化(缩进) -->
		 <property name="hibernate.format_sql">true</property>
	     <!-- #自动建表
	          	create:每次启动hibernate框架时自动建表(初始化)
	            create-drop:每次启动hibernate框架时自动建表,hibernate结束时会自动删除
	       		update:如果没有表时会自动创建,有表会比对表结构与映射配置是否一致.不一致将更新表结构.
	            validate :对映射关系进行校验,只使用原来的表
	            none : 不使用自动键表属性.不校验|不更性|不创建
	       -->
	     <property name="hibernate.hbm2ddl.auto">update</property>
	     
	     <!--3.映射文件的位置  -->
	     <!-- 引入映射 :将映射文件注册到主配置文件中
			注意: 引入路径填写相对路径. 相对src目录
		-->
		<mapping resource="cn/hei/domain/Customer.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

hibernate入门案例(将一个客户保存到数据库表中)

步骤分析:
    1.加载主配置文件
    2.根据配置文件中的配置构建SessionFactory
    3.使用工厂创建一个session对象
    4.使用session对象开启事务
    5.执行保存客户的操作
    6.提交事务
    7.释放资源

Customer customer = new Customer();
customer.setCust_name("清醒");
//1.加载主配置文件
Configuration config = new Configuration().configure();
//2.根据配置文件创建session工厂
SessionFactory sessionFactory = config.buildSessionFactory();
//3.根据工厂创建session对象
Session session = sessionFactory.openSession();
//4.使用session对象开启事务
Transaction tx = session.beginTransaction();
//5.执行保存客户的操作
session.save(customer);
//6.提交事务
tx.commit();
//7.释放资源
session.close();	

执行过程:
首先创建Configuration类的实例,并通过它来读取并解析配置文件hibernate.cfg.xml。然后创建SessionFactory读取并解析映射文件信息,并将Configuration对象中的所有配置信息拷贝到sessionFactory内存中,接下来,打开session,让sessionFactory提供链接,并开启一个事物,之后创建对象,并行对象中添加数据,通过session.save()方法保存到数据库中。最后提交事务,并关闭资源。

猜你喜欢

转载自blog.csdn.net/ITdevil/article/details/84074800