Hibernate增刪改查Oracle資料庫

來源:互聯網
上載者:User

本文開發環境: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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.