1、 目录和包文件
数据库都是mysql。
需求:实现对用户的增、删、改、查。为了方便,用户就2个属性 用户ID和用户名。实体模型如下:
建立工程:HibernateQuickUse,并且建立包。如下:
Lib包,如下:
2、 User.java
根据实体,创建类User,代码如下:
package org.py.hib.quickstart;
public class User implements java.io.Serializable {
private static final long serialVersionUID = -6994420060956492591L;
private String id;
private String name;
public User() {
}
public String getId() {
return this.id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
}
3、 建表语句
根据hibernate实体,创建数据表。sql如下:
use HibernateQuickUse;
drop table if exists User;
create table user (
id varchar(32) primary key,
name varchar(32)
);
这里的id,我没有采用Integer auto_increment, 原因是为了数据库的数据能方便的导入到另外一种数据库里面,比方说:oracle。当然,这个是以牺牲部分效率为前提的。因为id是integer的,能更加快速查询。不过,从数据库会自动为 primary key 建立 index来看,效率也不会相差太多。
4、 数据库文件hibernate.cfg.xml
要想通过hibernate访问数据库。首先要建立描述数据库的文件:hibernate.cfg.xml。放到src下面。内容如下:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibernatequickUse</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="show_sql">true</property>
<mapping resource="org/py/hib/quickstart/User.hbm.xml" />
</session-factory>
</hibernate-configuration>
说说上面的 "dialect", 这个对应着hibernate生成哪种数据库的sql。
然后是:"show_sql", 这个是为了调试时候输出sql语句到屏幕用的。
注意"mapping resource"部分。这个部分表示你的 实体- 数据库 映射文件的位置。(什么是实体-数据库 映射文件,看下面。)
实体-数据库映射文件 -- 主要是告诉hibernate,这个User类,对应着哪个table,User类里面的那个属性对应着table里面的哪个字段。
5、 映射文件
我们可以建立 实体-数据库 的xml映射文件,也可以采用Annotations映射,但是目前只说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="org.py.hib.quickstart.User" table="user">
<id name="id" type="java.lang.String" column="id" length="32">
<generator class="uuid" />
</id>
<property name="name" type="java.lang.String" column="name" length="32" />
</class>
</hibernate-mapping>
上面的xml还是很好理解的。注意一个generator中的class,他可以有很多。之后我回发相关的内容~!~