Hibernate入門心得 – JAVA編程語言程序開發技術文章

開發階段:

新建一個JAVA項目,目錄結構如下:

 

將準備的jar包引入到項目中。

 

hibernate.cfg.xml:(Hibernate的配置文件,放在項目的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">
 
     <!– Generated by MyEclipse Hibernate Tools.                   –>
 <hibernate-configuration>
 
     <session-factory>
         <!– 設置驅動類 –>
         <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
         <!– 設置連接池默認個數 –>
         <property name="connection.pool_size">20</property>
         <!– 設置JDBC URL –>
         <property name="connection.url">jdbc:mysql://localhost:3306/book</property>
         <!– 設置數據庫用戶名 –>
         <property name="connection.username">username</property>
         <!– 設置數據庫用戶密碼 –>
         <property name="connection.password">passwrod</property>
         <!– 設置SQL方言 –>
         <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
         <!– 設置是否顯示SQL語句 –>
         <property name="show_sql">true</property>
         <!– 設置格式化SQL語句 –>
         <property name="format_sql">true</property>
         <property name="current_session_context_class">thread</property>
 
         <mapping resource="com/sunflower/bean/Person.hbm.xml" />
     </session-factory>
 
 </hibernate-configuration>
這裡配置的是MySQL數據庫的驅動和連接,在開始的時候忘瞭加26行,結果調試的時候出錯,得不到session,關於這個標簽的使用,請參考如下文章:http://blog.sina.com.cn/s/blog_5ecfe46a0100e467.html 第28行是對象關系映射文件的配置.

Person.java:(人的實體類,對應到關系數據庫中的blog表)package com.sunflower.bean;

 
 import java.io.Serializable;
 
 /**
  * 博客用戶的實體類
  *
  * @author hanyuan
  * @time 2012-7-8 下午11:53:23
  */
 public class Person implements Serializable {
     private Integer id;
     private String username;
     private String password;
     private String caption;
     private String content;
 
     public Integer getId() {
         return id;
     }
 
     public void setId(Integer id) {
         this.id = id;
     }
 
     public String getUsername() {
         return username;
     }
 
     public void setUsername(String username) {
         this.username = username;
     }
 
     public String getPassword() {
         return password;
     }
 
     public void setPassword(String password) {
         this.password = password;
     }
 
     public String getCaption() {
         return caption;
     }
 
     public void setCaption(String caption) {
         this.caption = caption;
     }
 
     public String getContent() {
         return content;
     }
 
     public void setContent(String content) {
         this.content = content;
     }
 
 }
 第12~16行中的屬性對應到數據庫中的blog表的字段,其中id是主鍵索引.

 

Person.hbm.xml:(對象關系映射配置文件)<?xml version="1.0"?>

 <!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.sunflower.bean.Person" table="blog">
 
         <id name="id" type="java.lang.Integer">
             <column name="id"></column>
             <!– 將逐漸設置為自增 –>
             <generator class="increment"></generator>
         </id>
 
         <property name="username" type="java.lang.String" not-null="true">
             <column name="username"></column>
         </property>
 
         <property name="password" type="java.lang.String">
             <column name="password"></column>
         </property>
 
         <property name="caption" type="java.lang.String">
             <column name="caption"></column>
         </property>
 
         <property name="content" type="java.lang.String">
             <column name="content"></column>
         </property>
 
     </class>
 </hibernate-mapping>
<class name="com.sunflower.bean.Person" table="blog">表示對象對應的表,<id>字段是必須要有的,表示主鍵。開始的時候沒有加第13行,結果調試出錯,需要加上<generator>標簽,這裡設置為自增類型.關於<generator>標簽的使用,這個配置文件的是以hbm.xml結尾的,名字建議命名為對象名.hbm.xml,並且和實體類對象放在同一個包下,這樣比較好找.

Test.java:(調用Hibernate API 插入數據)package com.sunflower.main;

 
 import org.hibernate.Session;
 import org.hibernate.SessionFactory;
 import org.hibernate.Transaction;
 import org.hibernate.cfg.Configuration;
 
 import com.sunflower.bean.Person;
 
 public class Test {
     @SuppressWarnings("deprecation")
     public static void main(String[] args) {
         // 讀取Hibernate的配置信息
         Configuration config = new Configuration();
         config.configure();
 
         // 讀取配置裡面的SessionFactory
         SessionFactory sessionFactory = config.buildSessionFactory();
         Session session = sessionFactory.getCurrentSession();
         Transaction transaction = session.beginTransaction();
 
         Person person = new Person();
         person.setUsername("鄧光橋");
         person.setPassword("123");
         person.setCaption("Hibernate");
         person.setContent("Hibernate 入門實例");
 
         // 提交事務
         session.save(person);
         transaction.commit();
         sessionFactory.close();
     }
 }
 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。