本文開發環境:Win2003+Tomcat 5.5+MyEclipse 5.5.1 GA+jdk1.5.0_15+Oracle9i
軟體安裝路徑:
Tomcat 5.5:C:/Program Files/Apache Software Foundation/Tomcat 5.5
MyEclipse 5.5.1 GA:C:/Program Files/MyEclipse 5.5.1 GA
jdk1.5.0_15:C:/Program Files/Java/jdk1.5.0_15
jre1.5.0_15:C:/Program Files/Java/jre1.5.0_15
Oracle9i:E:/oracle/ora90
log4j:D:/jar/log4j-1.2.15/log4j-1.2.15.jar
第一步:建立一個Myeclipse串連Oracle9i資料庫連接
在MyEclipse開啟MyEclipse Java Enterprise Data Exploer Perspective表單,左邊DB Broswer中點滑鼠右
鍵--“New”,在表單中進行如下操作:
1.點擊"Add JARs"按鈕,找到Oracle安裝目錄下的E:/oracle/ora90/jdbc/lib/classes12.jar
2.Driver Template下拉式清單中選擇Oracle (Thin driver)
3.Driver Name 中輸入test
4.Connect URL: jdbc:oracle:thin:@127.0.0.1:1521:test(此處test為資料庫名)
5.UserName: system(此處system為資料庫登入使用者名稱)
6.Password: Manager(此處Manager為資料庫登入使用者對應的密碼)
7.勾選中"Save Password",點擊"Finishe"按鈕。
至此設定MyEclipse到Oracle資料庫完成。在左邊DB Broswer中多出一名稱為test的資料庫連接。
點滑鼠右鍵可開啟資料庫連接或者是進行編輯等操作。
第二步:完成項目的建立和Hibernate庫、log4j庫引用
1.在MyEclipse開啟MyEclipse Java Enterprise Development Perspective表單,左邊建立立一WebProject命
名為HibernateTest,
2.選種WebProject項目後點滑鼠右鍵選擇MyEclipse--Add Hibernate Capebilites--選擇Hibnernate3.1,勾選
Hibernate 3.1 core Libraries,點擊"Next"按鈕,進入資料庫設定表單,在DB Driver中選中第一步建立的
test串連即可。點擊"Next"按鈕,隨便輸入一個SessionFactory包名字如SessionFolder.
3.選種WebProject項目後點滑鼠右鍵, 選擇"Build Path"--"Add Librarys"--"User Library"--找到你本地的
log4j相關的jar檔案。
第三步:完成相關檔案代碼編寫:
檔案目錄結構如下:
1.src/db/Student.sql
2.src/db/StudentSequence.sql
3.src/mappings/Student.hbm.xml
4.src/model/Student.java
5.src/test/TestStudent.sql
6.src/hibernate.cfg.xml
7.src/hibernate.properties
8.src/log4j.properties
1.src/db/Student.sql資料庫指令碼內容
create table Student(
Student_ID number(6) NOT NULL PRIMARY KEY,
Student_Name varchar2(10) NOT NULL,
Student_Age number(2) NOT NULL
);
2.src/db/StudentSequence.sql資料庫指令碼內容
CREATE SEQUENCE student_sequence
INCREMENT BY 1
START WITH 1000
NOMAXVALUE
NOCYCLE
CACHE 10;
3.src/mappings/Student.hbm.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="model.Student" table="Student">
<id name="student_id" column="student_id" type="java.lang.Integer">
<generator class="native">
<param name="sequence">student_sequence</param>
</generator>
</id>
<property name="student_name" column="Student_Name" type="java.lang.String"/>
<property name="student_age" column="Student_Age" type="java.lang.Integer"/>
</class>
</hibernate-mapping>
4.src/model/Student.java內容
package model;
public class Student
{
private int student_id;
private String student_name;
private int student_age;
public int getStudent_id()
{
return student_id;
}
public String getStudent_name()
{
return student_name;
}
public int getStudent_age()
{
return student_age;
}
public void setStudent_id(int id)
{
this.student_id = id;
}
public void setStudent_name(String name)
{
this.student_name = name;
}
public void setStudent_age(int age)
{
this.student_age = age;
}
}
5.src/test/TestStudent.sql內容
package test;
import model.Student;
import org.hibernate.*;
import org.hibernate.cfg.*;
public class TestStudent {
public static void main(String[] args)
{
try
{
//通過Configuration獲得一個SessionFactory對象
SessionFactory sf = new Configuration().configure().buildSessionFactory();
//開啟一個Session
Session session = sf.openSession();
//開始一個事務
Transaction tx = session.beginTransaction();
//建立一個Student對象
Student stu = new Student();
//通過Student的setter方法改變它的屬性
//注意student_id不用我們設定
stu.setStudent_name("test");
stu.setStudent_age(20);
//通過session的save()方法將Student對象儲存到資料庫中
session.save(stu);
//提交事務
tx.commit();
//關閉會話
session.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
6.src/hibernate.cfg.xml內容
<?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>
<!-- Oracle資料庫連接字串 -->
<property name="hibernate.connection.url">jdbc:oracle:thin:@127.0.0.1:1521:test
</property>
<!-- Oracle驅動類 -->
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<!-- Oracle使用者名稱 -->
<property name="hibernate.connection.username">test</property>
<!-- Oracle密碼 -->
<property name="hibernate.connection.password">test</property>
<!-- Oracle適配器(反譯) -->
<property name="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</property>
<!-- 可以防表被重建立立 -->
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- 方便跟蹤SQL執行,在hibernate.cfg.xml中加入 -->
<property name="hibernate.show_sql">true</property>
<mapping resource="mappings/Student.hbm.xml" />
</session-factory>
</hibernate-configuration>
7.src/hibernate.properties內容
hibernate.dialect=org.hibernate.dialect.Oracle9Dialect
hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver
hibernate.connection.url=jdbc:oracle:thin:@127.0.0.1:1521:test
hibernate.connection.username=test
hibernate.connection.password=test
hibernate.show_sql=true
8.src/log4j.properties內容
log4j.rootLogger=DEBUG,CONSOLE,FILE
log4j.addivity.org.apache=true