1、 目录和包文件

数据库都是mysql。

需求:实现对用户的增、删、改、查。为了方便,用户就2个属性 用户ID和用户名。实体模型如下:

Hibernate实例一:基础教程(一)

建立工程:HibernateQuickUse,并且建立包。如下:

Hibernate实例一:基础教程(一)

 

Lib包,如下:

Hibernate实例一:基础教程(一)

 

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,他可以有很多。之后我回发相关的内容~!~

没有登录不能评论