第一步:
//创建一个po类
package com.hibernate.domain;
import java.io.Serializable;
/**
* po类:po封装的数据,将来会被持久化数据库
*
* @author Mr MO
*
*/
public class User implements Serializable {
private int id;
private String name;
private String sex;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", sex=" + sex + ", age="
+ age + "]";
}
}
第二步:
//创建一个表(User)
create table `user`(
id int PRIMARY key auto_increment,
name varchar(20),
sex char(1),
age int
)
第三步:编写po类跟user表之间的映射关系 (User.hbm.xml)
<?xml version="1.0" encoding="UTF-8"?>
<!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="com.hibernate.domain.User" table="user">
<id name="id" column="id">
<generator class="native"></generator>
</id>
<property name="age" column="age"></property>
<property name="name" column="name"></property>
<property name="sex" column="sex"></property>
</class>
<!--
hibernate-mapping根标签
class标签:它是用来描述对象类与数据库中表的关系
com.xingxue.hibernate.evn.domain.User &&&&&&&&&&&&&&&&&&&&& user表
属性 字段
id标签标签是来描述主键与类属性的关系
id标签中:name属性表示对象的属性名
id标签中的column属性是表示表中的字段名称
generator标签是id标签的子标签:用来表示主键的生成策略
native:根据底层数据库的能力选择 identity、sequence 或者 hilo 中的一个。
uuid:生成36未的不重复的字符串作为主键值
assigned:让应用程序在调用 save() 之前为对象分配一个标识符。这是 <generator> 元素没有指定时的默认生成策略。 手工进行主键的赋值
increment:用于为 long, short 或者 int 类型生成 唯一标识。只有在没有其他进程往同一张表中插入数据时才能使用。在集群下不要使用。效率低,不建议使用
identity:对 DB2,MySQL,MS SQL Server,Sybase 和 HypersonicSQL 的内置标识字段提供支持。返回的标识符是 long,short 或者 int 类型的。
常用的是uuid assigned 两种
普通的字段和属性的描述:
property标签来描述的。
name属性:对象的属性名称
column属性:表的字段名称
not-null属性:指定该字段不能为空:
length属性:表示指定字段的长度
precision:小数点后面的位数 2
scale:小数的有效长度 3
5.33
联合一起使用用来描述小数的长度
如果属性名称跟表的字段名称一致,可以省略不写column属性
-->
</hibernate-mapping>
第四步:
编写一个hibernate核心配置文件 hibernate.cfg.xml
注意事项:Hibernate.cfg.xml放于工程的类路径下,src目录下
<?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>
<session-factory>
<!-- 数据库信息的配置 -->
<property name="hibernate.connection.url">jdbc:mysql:///hiberante</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- 指定数据库方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 引入外部的映射文件 -->
<mapping resource="com/hibernate/evn/domain/User.hbm.xml"/>
</hibernate-configuration>