[站內] 簡易 Hibernate 教學
==站內信件==
開發環境:
OS :Windows XP
Java SDK:5.0
java IDE:Eclipse 3.11
Database:MySQL 5.0.19
(請到 http://dev.mysql.com/downloads/mysql/5.0.html
點 without installer 選項下載 mysql database
請到 http://dev.mysql.com/downloads/connector/j/3.1.html
點 zip 格式的檔案下載 mySQL 的 JDBC
為了管理方便請到 http://dev.mysql.com/downloads/administrator/1.1.html
跟 http://dev.mysql.com/downloads/query-browser/1.1.html
下載 mySql Administrator 跟 Query Browser
)
Hibernate:hibernate 3
(請到 http://www.hibernate.org/6.htm 點Hibernate Core下載)
Eclipse Plugins:XMLBuddy,hibernate tools,hibernate Synchronizer(可有可無)
開發環境準備完就可以進行開發工作
Step 1:開起 Eclipse
Step 2:開起一個 Java 專案
Step 3:專案命名為 HibernateDemo(請依照你的習慣來命名)
Step 4:起動 mysql,請在Dos視窗中mysql_home\bin下輸入 mysqld-nt --console
Step 5:請開另一個Dos視窗在 mysql_home\bin 下輸入 mysql -u root
Step 6:建立一個 sample 資料庫,並建一個的 user table
SQL 語法:
create database sample;
create table `sample`.`user` (
`id` int(11) not null auto_increment,
`name` varchar(100) not null default '',
`age` int,
primary key (`id`)
)engine=InnoDB;
Step 7:準備 hibernte 需要的lib,加入Eclipse 專案建置中
hibernate 相關的 lib
log4j-1.2.11.jar
antlr-2.7.6rc1.jar
asm.jar
cglib-2.1.3.jar
commons-collections-2.1.1.jar
commons-logging-1.0.4.jar
dom4j-1.6.1.jar
encache-1.1.jar
jta.jar
junit-3.8.1.jar
hibernate3.jar
ant.jar 此為 Ant 專案的lib
mysql-connector-java-3.1.10-bin.jar (此為MySQL的JDBC Driver)
Step 8:建立一個 User class
程式碼:
package idv.study;
public class User{
private Integer id;
private String name;
private Integer age;
}
Step 9:在 User class 中建立 setter 跟 getter
Step 10:在User.java的目錄中建立User的Mapping檔案
User.hbm.xml程式碼:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"" rel="nofollow">http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="idv.study.User" table="user">
<id name="id" column="id">
<generator class="native" />
</id>
<property name="name" column="name" />
<property name="age" column="age" />
</class>
</hibernate-mapping>
Step 11:在開發者的目錄中建立hibernate config檔案
hibernate.cfg.xml程式碼:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"" rel="nofollow">http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.url">
<!--選取我們所需要的Database-->
jdbc:mysql://localhost/sample
</property>
<property name="hibernate.connection.driver_class">
<!--設定JDBC所使用的Driver-->
org.git.mm.mysql.Driver
</property>
<property name="hibernate.connection.username">
<!--設定連接DataBase所需使用的username-->
root
</property>
<property name="hibernate.connection.password">
<!--設定連接DataBase所需使用的密碼-->
</property>
<property name="dialect">
<!--這行我不清楚他的用意,請版上的大大解釋一下吧-->
org.hibernate.dialect.MySQLDialect
</property>
<!--選取對應到DataBase的Mapping 檔案-->
<mapping resource="idv/study/User.hbm.xml" />
</session-factory>
</hibernate-configuration>
Step 12:建立一個測試類別 UserStudyDemo
程式碼:
import idv.study.User;
import org.hibernate.*;
import org.hibernate.cfg.*;
public class UserStudyDemo {
public static void main(String[] args) {
// 讀取hibernate config 檔案
Configuration configuration = new Configuration().configure();
Session session = configuration.buildSessionFactory().openSession();
Transaction tx = session.beginTranscation();
// 建立使用者
User user = new User();
user.setAge(new Integer(20));
user.setName("King");
// 將使用者資訊存入 session 中
session.save(user);
// 判斷資料是否相等
User user2 = (User) session.get(User.class,user.getId());
System.out.print(user2.getName().equals(user.getName()));
// 將 session 資料存入資料庫
tx.commit();
session.close();
}
}
Step 13:將 hibernate/etc 目錄中的log4j.properties 放入專案
的 src 下面
Step 14:完成之後去資料庫查看有沒有將User的資料存入資料庫中
在Dos視窗mysql_home\bin目錄下輸入:mysql -u root
進入 mysql 中,
會看到畫面為 mysql>
在此畫面中輸入:select * from `sample`.`user`;
接著就會看到剛剛利用 UserStudyDemo 存入的資料
參考文獻:
良葛格的 Spring 技術手冊 碁峰出版 作者:林信良 出版年月:2006.3
深入淺出 Hibernate 博碩出版 作者: 夏昕 曹曉鋼 唐勇 出版年月:2006.1
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.85.210.133
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):
java 近期熱門文章
PTT數位生活區 即時熱門文章