配置hibernate手動配置

手動配置:java

1.CROD 操做程序員

界面sql

testmain.java數據庫

Domainsession

service架構

數據持久層oracle

數據庫app

Mysqldom

Oreacle函數

Sqlserver

                                                                                                                               ````

2.引用hibernate   jar

3.POJO介紹

 使用hibernate 時 要求數據庫的某張表相互對應的那個java 類叫作pojo類  plain ordinary java objects 實際 就是普通的javaBeans 使用.

特色:

有一個主鍵屬性 , 用於惟一標識該對象

有其餘的屬性

有對個個屬操做的getset 方法

屬性通常的private 修飾

必定要有一個無產的構造函數 (用於hibernate 架構的反射做用)

對象關係映射文件 做用 與 domain 對象和類的映射關係

文件名的 規範

Domian對象 bomm .xml 通常會放在domain 對象統一文件夾下(同包下)

手動用戶配置 domain 對象和表的映射關係  

<?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">

<!-- package : 表示該類在哪一個包下 -->

<hibernate-mapping package="com.sun.domain">

<!-- name : 表示類名 table 表示 該類和哪一個表映射 -->

<class name="Employee" table="EMPLOYEE">

<!-- id元素專門用於指定主鍵是如何生成,hibernate設計者認爲,咱們每個表都應該有一個主鍵 -->

<!-- name:表示類的哪一個屬性是主鍵 -->

<id name="id" type="java.lang.Integer">

<!-- 指定主鍵生成策略 -->

<generator class="sequence">

<param name="sequence">emp_seq</param>

</generator>

</id>

<property name="name" type="java.lang.String">

<column name="name" not-null="true"/>

</property>

<property name="email" type="java.lang.String">

<column name="email" not-null="true"/>

</property>

<property name="hiredate" type="java.util.Date">

<column name="hiredate" not-null="true"/>

</property>

</class>

</hibernate-mapping>

手動配置 咱們 的 hibernate.cfg.xml文件 該文件用於配置,鏈接數據庫的類型, driver 用戶名 ,密碼 , url  *****  文件名稱 ,程序員通常不進行修改該文件。

手動配置 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">

<hibernate-configuration>

 <session-factory>

 <!-- -hibernate 設計者提供經常使用設置-->

 <!-- -配置使用driver -->

      <property name="connection.driver_class"> oracle.jdbc.driver.OracleDriver</property>

        <!-- -配置用戶名 -->

        <property name="connection.username">system</property>

         <!-- -配置密碼 -->

          <property name="connection.password">123</property>

          <!-- -地址 -->

          <property name="connection.url">jdbc:oracle:thin:@127.0.0.1 :1521:SUNDB</property>

  <!-- -p配置dialect方言使其 識別鏈接方式 -->

  <property name="dialect">org.hibernate.dialect.OracleDialect</property>

 <mapping resource="com/sun/domain/Emloyee.hbm.xml"/>

 </session-factory>

hibernate-configuration>

建立一個序列,未來用於主鍵的自增加 :

--建立一個序列

create sequence emp_seq

start with 1

increment by 1

minvalue 1

nomaxvalue

nocycle

nocache

View 方法呈現

package com.sun.view;

import java.util.Date;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.Transaction;

import org.hibernate.cfg.Configuration;

import com.sun.domain.Employee;

public class MainTest {

/**

 * @param args

 */

public static void main(String[] args) {

// TODO Auto-generated method stub

//建立configuration鏈接hibernate 該對象讀取 完成初始化

Configuration configuration = new Configuration().configure("hibernate.cfg.xml");

///建立SessionFactory 這是一個會化工廠  是重量級的對象  保證該對象存在一次

//很是重要 

SessionFactory sessionFactory = configuration.buildSessionFactory();

//建立Session 與數據庫進行對話  和jdbc 的鏈接

Session session = sessionFactory.openSession();

///對hibernate 而言 要去對數據庫 增長 , 刪除  ,修改  的時候使用事務提交

//添加一名僱員

Transaction transaction = session.beginTransaction();

Employee myEmployee = new Employee();

myEmployee.setName("素貞");

myEmployee.setEmail("shuzhen@163.com");

myEmployee.setHiredate(new Date());

///實現保存

session.save(myEmployee); ///實現hibernate 封裝

///完成關閉操做

///事務提交文件數據庫

transaction.commit();

session.close();

}

}

對數據的   增長  修改   刪除  

要求數據持久層 的 類中 進行序列化 

使用hibernate 開發型模數據   要使用一個 sessionFactory,提升數據減小內存的

簡單定義 一個數據庫 對應一個SessionFactory接口  使用一個工具包編寫  

SessionFactory 會話工廠

案例 

建立一個工具類編寫 SessionFactory會話工廠

package com.sun.Util;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;

///使用hibernate 開發型模數據   要使用一個 sessionFactory,提升數據減小內存的使用

//簡單定義 一個數據庫 對應一個SessionFactory接口

final public class MySessionFactory {

   private static SessionFactory sessionFactory  = null

//構造函數

   private  MySessionFactory() {

}

///建立一次單例 只能被調用一次 

   static {

sessionFactory=new Configuration().configure().buildSessionFactory();    

       }

 public static SessionFactory getSessionFactory() {

return sessionFactory;

}

}

主類

package com.sun.view;

import java.util.Date;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.Transaction;

import org.hibernate.cfg.Configuration;

import com.sun.Util.MySessionFactory;

import com.sun.domain.Employee;

public class MainTest {

/**

 * @param args

 */

public static void main(String[] args) {

///添加對象數據

  AddEmployee();

  //修改對象數據

c   updateEmployee();

//刪對象數據

    DeleteEmployee();

}

public static void DeleteEmployee() {

///h獲取一個session 

Session session = MySessionFactory.getSessionFactory().openSession();

//刪除獲取對象 獲取該對象  , 而後刪除

//建立事務調用Session 中的beginTransaction()函數開始事務  勿忘   要有結束事務  即提交事務

 Transaction ts = session.beginTransaction();

///實現  強轉 

Employee employee = (Employee) session.load(Employee.class,3);

session.delete(employee);

ts.commit();

session.close();

}

      //修改對象數據

public static void updateEmployee() {

//修改對象 

//建立configuration 對象

//建立會話工廠  SessionFactory   重量級 對象 

//只能建立一次 咱們能夠封裝起來 寫成一個最終了類 是單態 

Session session = MySessionFactory.getSessionFactory().openSession();

//修改用戶 對象  獲取咱們要修改的用戶  修改

//使用對象數據庫對象與類的反射

//load 函數 經過主鍵屬性   ,進而獲取該對象  表的記錄對應

///必定要進行強鑽對象

Transaction ts = session.beginTransaction();

Employee emp =(Employee) session.load(Employee.class,6);

emp.setName("宮保雞丁");  ///實現對數據庫修改對象  update

ts.commit();

session.close();

}

   /// 添加對象數據 

public static void AddEmployee() {

// TODO Auto-generated method stub

//建立configuration鏈接hibernate 該對象讀取 完成初始化

Configuration configuration = new Configuration().configure("hibernate.cfg.xml");

///建立SessionFactory 這是一個會化工廠  是重量級的對象  保證該對象存在一次

//很是重要 

SessionFactory sessionFactory = configuration.buildSessionFactory();

//建立Session 與數據庫進行對話  和jdbc 的鏈接

Session session = sessionFactory.openSession();

///hibernate 而言 要去對數據庫 增長 , 刪除  ,修改  的時候使用事務提交

//添加一名僱員

Transaction transaction = session.beginTransaction();

Employee myEmployee = new Employee();

myEmployee.setName("素貞");

myEmployee.setEmail("shuzhen@163.com");

myEmployee.setHiredate(new Date());

///實現保存

session.save(myEmployee); ///實現hibernate 封裝

///完成關閉操做

///事務提交文件數據庫

transaction.commit();

session.close();

}

}

相關文章
相關標籤/搜索