Re: [站內] 簡易 Hibernate 教學

看板java作者 (shooting star)時間18年前 (2006/04/02 19:07), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
真不錯用 後來找到了兩個中文的介紹網站也蠻不錯的 http://caterpillar.onlyfun.net/Gossip/HibernateGossip/HibernateGossip.html http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=833 看完之後會有更深的瞭解 ※ 引述《king08 (糊塗蛋)》之銘言: : ==站內信件== : 開發環境: : 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: 220.132.7.86
文章代碼(AID): #14Bx24Se (java)
文章代碼(AID): #14Bx24Se (java)