hibernate映射文件配置和核心配置文件配置详解

映射文件详解

  hibernate映射文件:实现POJO与DB表的映射配置

  为方便维护一般将其放置在POJO同一目录下,并且命名为POJOName.hbm.xml;虽然一个映射文件可以配置多个POJO与DB表的映射关系,但一般一个映射文件只配置一个POJO映射数据库表的映射关系;

<?xml version="1.0" encoding="UTF-8"?>
    <!--指定hibernate映射文件的DTD信息 -->
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 
<hibernate-mapping>
	<!-- 建立类与表的映射 -->
    <!--class标签的配置
 	    标签用来建立类与表的映射关系
	    name  :持久化类的全路径
	    table : 对应数据库表名(类名与表名一致可以省略)
	    catalog :数据库名
    -->
	<class name="com.hibernate.demo1.Customer" table="cst_customer">
		<!--id标签配置 
            建立类中的属性与表中的主键对应
            1.name:标识属性名
            2.column:对应数据库表的主键字段名
	        3.length:长度(当数据库中没有表,可以在代码中建立,运行程序的时候建立表)
	        4.type:数据类型
         -->
		<id name="cust_id" column="cust_id">
            <!--generator标签配置
                generator指定主键的生成策略
                主键生成策略:
                  increment :hibernate中提供的自动增长机制,适用于long,short,int类型生成唯          一标识。在单线程程序适用
			      identity:适用short,int,long类型的主键,使用的是数据库底层的自动增强机制。适用于底层的自动增长机制的数据库有(mysql,mssql),但是Oracle是没有自动增长
			      sequence:适用short,int,long类型的主键,采用的是序列的方式(Oracle支持序列),mysql不支持
			      uuid:适用于字符串类型的主键,使用hibernate随机的方式生成字符串主键
			      native:本地策略,可以在identity和 sequence之间进行自动切换
			      assigned:hibernate放弃外键的管理,需要用户自行编写程序 或用户自己设置
			      foreign:外部的,一对一的一种关联映射的情况下使用 

             -->
			<generator class="native"></generator>
		</id>
		<!-- 建立类中的普通属性和表中的字段名对应
                1.name	    类中的属性名
	            2.column	表中的字段名(当字段名与持久化类对应的属性名一致时可以省略)
            	3.length	长度
	            4.not-null  不允许为空
	            5.type      数据类型
	            6.unique    唯一
         -->
		<property name="cust_name" column="cust_name"></property>
		<property name="cust_source" column="cust_source"></property>
		<property name="cust_industry" column="cust_industry"></property>
		<property name="cust_level" column="cust_level"></property>
	</class>
	
</hibernate-mapping>

核心配置文件详解

hibernate核心配置文件的配置方式有两种   

 一种:属性文件的方式
        hibernate.properties
        (属性文件的方式不能引入映射文件,需要手动编写代码加载映射文件)
    一种:xml文件的方式
        hibernate.cfg.xml    

在开发中比较常用xml的方式配置;通常将核心配置文件放置src目录下;

<?xml version="1.0" encoding="UTF-8"?>
<!---->
<!--hibernate核心配置文件的DTD信息-->
<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!--hibernate-configuration标签是连接配置文件的根元素-->
<hibernate-configuration>
<!---->
	<session-factory>
        <!--指定连接数据库所用的驱动-->
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
				<!-- //localhost:3306/ -->
        <!--指定连接数据库的url-->
		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/数据库名</property>
        <!--指定连接数据库的用户名-->
		<property name="hibernate.connection.username">root</property>
        <!--指定连接数据库的密码-->
		<property name="hibernate.connection.password">rootroot</property>
		<!-- 配置Hibernate的方言 -->
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
		<!-- 打印执行的sql语句 -->
		<property name="hibernate.show_sql">true</property>
        <!--将sql语句格式化后再输出-->
		<property name="hibernate.format_sql">true</property>
        <!--
            自动建表 :hibernate.hbm2ddl.auto
	        none:不使用hibernate自动建立数据库
	        create :如果数据库中已经有表,删除,重新创建;如果没有,新建表
	        create-drop :如果数据库中已经有表,执行操作,再删除表;如果没有,新建,执行操作后再删除表
	        update:如果有表,使用原有的表,如果没有,创建新的表,(可以更新表结构)
	        validate:如果没有表,不会创建表,只会使用数据库中原有的表
        -->
        <property name="hibernate.hbm2ddl.auto">update</property>



		<!-- 引入映射文件 -->
		<mapping resource="com/hibernate/demo1/Customer.hbm.xml" />
	</session-factory>
</hibernate-configuration>

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值