標籤:uil 儲存 mysq 管理類 term www hello 對象關係映射 配置
hibernate架構介紹:
ORM概念(非常重要)
O,Object 對象. R,Relation 關係. M,Mapping 映射
ORM:對象關係映射!
ORM,攻克了什麼問題?
儲存:是否能把對象的資料直接儲存到資料庫中
擷取:是否能直接從資料庫拿到一個對象
要想做到上述兩點,必需要有映射
總結:Hibernate與 ORM的關係:Hibernate是ORM的實現
怎樣搭建一個Hibernate開發環境,開發步驟:
(1)下載原始碼:版本號碼hibernate-distribution-3.6.0.Final
(2)引入jar檔案 :Hibernate3.jar核心+required必須引入的(6個)+jsp檔案夾+mysql驅動
(3)寫對象以及對象的映射
Employee.java 對象
Employee.hbm.xml 對象的映射(一般我們使用hbm.xml結尾,這是為了區分Hibernate對應檔)
(4)src/hibernate.cfg.xml(這個檔案的命名必須這樣寫)
1.Employee.java
package cn.itcast.hello;import java.util.Date;public class Employee {private int id;private String empName;private Date workDate;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getEmpName() {return empName;}public void setEmpName(String empName) {this.empName = empName;}public Date getWorkDate() {return workDate;}public void setWorkDate(Date workDate) {this.workDate = workDate;}}2.Employee.hbm.xml檔案
主要包含主鍵映射和非主鍵映射
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="cn.itcast.hello"><class name="Employee" table="employee"><!-- 主鍵 映射--><id name="id"><generator class="native"></generator></id><!-- 非主鍵 映射 --><property name="empName" column="empName"></property><property name="workDate" column="workDate"></property></class></hibernate-mapping>
3.hibernate.cfg.xml檔案
(1)資料庫連接的配置.假設不懂能夠去Hibernate原始碼/project/etc/hibernate.properties找到複製粘貼就可以
(2)其它配置包含方言以及是不是自己主動建表的配置資訊
(3)對應檔的引入.<mapping resource="設定檔的檔案夾"/>
<!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><!-- 1.資料庫的配置資訊 --><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql:///day25</property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">169500</property><!-- 2.其它配置資訊。hibernate在執行的時候。會依據不同的方言產生符合當前資料庫文法的sql語句 --><property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property><!-- 顯示sql語句資訊 --><property name="hibernate.show_sql">true</property><property name="hibernate.hbm2ddl.auto">create</property><!-- 3.匯入對應檔 --><mapping resource="cn/itcast/hello/Employee.hbm.xml"/></session-factory></hibernate-configuration>
4.測試類AppTest
編寫步驟:
(1).擷取載入設定檔的管理類對象.(2).載入設定檔.(3).建立session工廠對象.(4).建立session(代表的是一個對話。與資料庫連接的會話).(5).開啟事務.(6).與資料庫的操作.(7).提交事務.(8).關閉資源.
package cn.itcast.hello;import java.util.Date;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.hibernate.classic.Session;import org.junit.Test;public class AppTest {@Testpublic void test(){Employee emp=new Employee();emp.setEmpName("李衛康");emp.setWorkDate(new Date());//1.擷取載入設定檔的管理類對象Configuration config=new Configuration();//2.載入設定檔config.configure();//預設載入的是src檔案夾下的hiberate.xml檔案//3.建立session工廠對象SessionFactory factory = config.buildSessionFactory();//4.建立session(代表的是一個對話。與資料庫連接的會話)Session session = factory.openSession();//5.開啟事務Transaction tx = session.beginTransaction();//6.與資料庫的操作session.save(emp);//7.提交事務tx.commit();//8.關閉資源session.close();}}執行結果能夠探索資料庫中多了一個employee的表,並有一條記錄
hibernate 入門案例