//刘梦冰发表于2015-6-18
1、使用XML配置
Cat.java(实体类)
public classCat {
private Integerid;
private Stringname;
private Stringdescription;
public Integer getId() {
returnid;
}
public void setId(Integer id) {
this.id =id;
}
public String getName() {
returnname;
}
public void setName(String name) {
this.name =name;
}
public String getDescription(){
returndescription;
}
public void setDescription(String description) {
this.description =description;
}
}
Cat.hbm.xml(作用:配置Hibernate中相应实体的映射)
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEhibernate-mapping PUBLIC"-//Hibernate/HibernateMapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<!-- xml文件配置Hibernate实体映射 -->
<hibernate-mappingpackage="com.lmb.hibernate.bean"><!--实体类所在的包 -->
<!-- 实体类 -->
<classname="Cat"table="table_cat"><!-- name=""用来指定实体类, table=""用来指定数据库表格 -->
<idname="id"column="id"type="java.lang.Integer"><!-- id主键 -->
<generatorclass="native"/><!--数据库自动增长 -->
</id>
<propertyname="name"type="java.lang.String"><!-- 配置实体类变量-->
<columnname="name"length="20"/><!-- 数据库的字段名和字段长度 -->
</property>
<propertyname="description"type="java.lang.String"><!-- 配置实体类变量-->
<columnname="description"length="50"/><!-- 数据库的字段名和字段长度 -->
</property>
</class>
</hibernate-mapping>
代码中的DOCTYPE指定的dtd文件位于hibernate.jar中。dtd文件为XML格式验证文件,Hibernate使用该dtd来验证该XML文件格式是否正确。如果hibernate.jar或者classpath中不存在该dtd文件,Hibernate会到指定的URL下载该文件。
在上述的映射文件中,<class>中的name表示实体类的路径和名称。table="”用来指定数据库表格,<id>用来声明表的主键,<id>中的属性name="id"表示实体类的属性id。数据库对应的字段名放在<column>中,<column>中的name表示表中的字段名,<generator class=" " />表示数据库表的主键类型,默认的类型是不自动增长类型,在<property>中映射表中的其他字段,<property>中的name属性值表示实体类的属性,type表示实体类属性的类型。表字段的映射放在<column>中,name的值是字段名,length表示字段长度。
Hibernate.cfg.xml
<?xmlversion='1.0'encoding='UTF-8'?>
<!DOCTYPEhibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!-- Generated by MyEclipse HibernateTools. -->
<hibernate-configuration>
<session-factory>
<propertyname="dialect">org.hibernate.dialect.MySQLDialect</property>
<propertyname="connection.url">jdbc:mysql://localhost:3306/hibernate?characterEncoding=UTF-8</property>
<propertyname="connection.username">lmb</property>
<propertyname="connection.password">lmb</property>
<propertyname="connection.driver_class">com.mysql.jdbc.Driver</property>
<!--hibernate中声明用XML配置的实体类 -->
<mapping resource="com/lmb/hibernate/bean/Cat.hbm.xml"/>
</session-factory>
</hibernate-configuration>
2、使用@注解配置
<span style="color:#008080;">package com.lmb.hibernate.bean;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
</span><span style="color:#ff0000;">@Entity //注解Entity表述该类能被hibernate持久化
@Table(name="table_cat") //指定该Entity对应的数据表明</span><span style="color:#008080;">
public class Cat {
</span><span style="color:#ff0000;">@Id //指定该列为主键
@GeneratedValue(strategy=GenerationType.AUTO) //主键类型auto为数据库自增长类型</span><span style="color:#008080;">
private Integer id;
</span><span style="color:#ff0000;">@Column(name="name") //指定属性对应的数据库表的列为"name"</span><span style="color:#008080;">
private String name;
</span><span style="color:#ff0000;">@Column(name="description") //指定属性对应的数据库表的列为"description"</span><span style="color:#008080;">
private String description;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
</span>
Hibernate.cfg.xml
<span style="color:#008080;"><?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">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibernate?characterEncoding=UTF-8</property>
<property name="connection.username">lmb</property>
<property name="connection.password">lmb</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<!--hibernate中声明用@注解配置的实体类 -->
<mapping class="com.lmb.bean.Cat"/>
</session-factory>
</hibernate-configuration></span>
有关几个配置文件的总结:
xxx.hbm.xml:配置Hibernate实体映射;
hibernate.cfg.xml:配置数据库驱动,并声明用XML文件或者@注解配置的实体类。