Hibernate框架
今天我來主要講一下Hibernate框架的配置步驟,在講之前,我們先了解一下使用框架的優勢
1.不再考慮公共問題,框架已經幫我們做好了
2.可以專心於業務邏輯,保證核心業務邏輯的開發質量
3.結構統一,便於學習和維護
4.框架中集成了前人的經驗,可以幫助新手寫出穩定、性能優良而且結構優美的高質量程序。
我們都知道SSH集成框架指的是基於Struts或Struts2+Spring+Hibernate的技術框架,也就是我們常說的三大框架,使用這個集成框架將使我們應用程序更加健壯、穩固、輕巧和優雅。
Hibernate是數據持久化(數據持久化 就是將內存中的數據模型轉換為存儲模型,以及將存儲模型轉換為內存... 然后根據框架的配置文件,自動或手動決定 什么 時候把這種保存提交到 數據 庫)工具,是一個開放源代碼的對象關系映射框架。
優點:
1.Hibernate功能強大,較之JDBC方式操作數據庫,代碼量大大減少,提高持久化代碼的開發速度,降低維護成本。
2.Hibernate支持許多面向對象的特性
3.可移植性好
4.Hibernate框架開源免費
缺點:
1.不適合以數據為中心的大量使用存儲過程的應用。
2.大規模的批量插入、修改和刪除不適合用HibernateHibernate環境搭建
1.下載和部署jar包
2.創建配置文件hibernate.cfg.xml
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- Database connection settings 數據庫連接配置--> <property name="connection.driver_class">oracle.jdbc.OracleDriver</property> <property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property> <property name="connection.username">wth</property> <property name="connection.password">1509184562</property> <!-- JDBC connection pool (use the built-in) --> <property name="connection.pool_size">1</property> <!-- SQL dialect 方言--> <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property> <!-- Echo all executed SQL to stdout 在控制台打印后台sql語句--> <property name="show_sql">true</property> <!-- 格式化語句 --> <property name="format_sql">true</property> <!-- Drop and re-create the database schema on startup --> <property name="hbm2ddl.auto">update</property> <!-- 關聯小配置 --> <mapping resource="cn/entity/student.hbm.xml" /> </session-factory> </hibernate-configuration>
3.創建持久化類和映射文件
小配置:
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="cn.entity"> <class name="Student" table="STUDENT"> <id name="sId" column="SID"> <generator class="native"/> </id> <!-- assigned 程序員賦值 native后台DB賦值--> <property name="sName" type="string" column="SNAME"/> <property name="sAge"/> </class> </hibernate-mapping>
持久化類
package cn.test;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;
import cn.entity.Student;
public class Test {
public static void main(String[] args) {
Student stu=new Student();
stu.setsName("呵");
stu.setsAge(12);
Configuration cfg=new Configuration().configure();
SessionFactory sc = cfg.buildSessionFactory();
Session se = sc.openSession();
Transaction tx=se.beginTransaction();
se.save(stu);
tx.commit();
System.out.println("success!!!");
}
}