Hibernate持久化类和映射文件 Xxx-hbm.xml ----Hibernate_1

持久化类就是 简单的JavaBean  ;Hibernate鼓励采用 POJO编程模型来实现持久化类;Hibernate要求持久化必须具有一个无参数的构造方法,属性必须有getXxx()和setXxx()方法,hibernate通过get和set方法操作和访问属性,实现java.io.Serializable接口;如果需要放入HttpSession中就必须实现这个接口。

实体类需要和映射文件在一个包下

实体类:Employee

public class Employee implements Serializable {
	private String empno;
	private String ename  ;  
	private String job    ;  
	private String mgr    ;  
	private Date hiredate ;
	private Double sal      ;
	private Double comm    ; 
	private Integer deptno;
          //省略get 和 set 方法
}

映射文件:Employee.hbm.xml   注意命名规范

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 <hibernate-mapping>
 	<class name="com.accp.hibernate.entity.Employee" table="Employee">
 		<id name="empno" column="EMPNO" type="java.lang.String">
 			<!-- 手动分配 -->
 			<generator class="assigned"></generator>
 			<!-- oracle的自增 -->
 			<!-- <generator class="sequence">
 				<param name="sequence">seq_employee</param>
 			</generator> -->
 		</id>
 		<property name="ename" column="ENAME" type="java.lang.String"> </property>
 		<property name="job" column="JOB" type="java.lang.String"> </property>
 		<property name="mgr" column="MGR" type="java.lang.String"> </property>
 		<property name="hiredate" column="HIREDATE" type="java.util.Date"> </property>
 		<property name="sal" column="SAL" type="java.lang.Double"> </property>
 		<property name="comm" column="COMM" type="java.lang.Double"> </property>
 		<property name="deptno" column="DEPTNO" type="java.lang.Integer"> </property>
 	</class>
</hibernate-mapping>


 

now。从上往下分析配置文件:

    <?xml version="1.0" encoding="UTF-8"?>  

xml声明,版本号  字符编码

<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

映射文件规范,这个必须要有 在 hibernate架包下的org.hibernate 包中可以找到,直接copy过来即可 直接上图:


 <hibernate-mapping>
 	<class name="com.accp.hibernate.entity.Employee" table="Employee">
 		<id name="empno" column="EMPNO" type="java.lang.String">
 			<!-- 手动分配 -->
 			<generator class="assigned"></generator>
 			<!-- oracle的自增 -->
 			<!-- <generator class="sequence">
 				<param name="sequence">seq_employee</param>
 			</generator> -->
 		</id>
 		<property name="ename" column="ENAME" type="java.lang.String"> </property>
 		<property name="job" column="JOB" type="java.lang.String"> </property>
 		<property name="mgr" column="MGR" type="java.lang.String"> </property>
 		<property name="hiredate" column="HIREDATE" type="java.util.Date"> </property>
 		<property name="sal" column="SAL" type="java.lang.Double"> </property>
 		<property name="comm" column="COMM" type="java.lang.Double"> </property>
 		<property name="deptno" column="DEPTNO" type="java.lang.Integer"> </property>
 	</class>
 	</hibernate-mapping>

        class :表示一个实体;

                table属性: 对应实体类的表名;

                name属性:实体类的完全限定名;

        id: 表示主键

                 name:实体类的属性名

                column:对应的列名

                type:属性的类型

         generator:主键生成的策略;

                assigned:应用程序分配,与Hibernate无关

                sequence:oracle的sequence序列

                                param:序列的名称

              native:由Hibernate根据底层数据库自行判断采用何种主键生成策略,即由使用的数据库生成主键的值

          identity:对如sqlserver,DB2,MySQL 等支持标识列的数据库,自增列

    property:标识实体类的属性 和数据表的列对应

            name:属性名

           column:数据表的列名

           type:属性的类型



        最后需要在hibernate.cfg.xml配置文件中引用此映射文件:

  <mapping resource="com/accp/hibernate/entity/Employee.hbm.xml" />





评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佛系编码i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值