搭建一個最小的hibernate框架

第一步:

//創建一個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)


注意事項:User.hbm.xmlpo類放於同一個包下


<?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>



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章