Hibernate從入門到上手(一),hibernate上手
-
Hibernate(orm架構)(開放原始碼的對象關係映射架構)
Hibernate是一個開放原始碼的對象關係映射架構,它對JDBC進行了非常輕量級的對象封裝,它將POJO與資料庫表建立映射關係,是一個全自動的orm架構,hibernate可以自動產生SQL語句,自動執行,使得Java程式員可以隨心所欲的使用對象編程思維來操縱資料庫。Hibernate可以應用在任何使用JDBC的場合,既可以在Java的用戶端程式使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成資料持久化的重任。
Orm:Object relational mapping,對象映射關係,用於對象與關係型資料庫關聯映射架構。
Demo1:純java project搭建步驟:
第一步:建立資料庫表t_user,建立java對象USer.java
第二步:添加jar包
第三步:建立對應檔
第四步:建立hibernate核心設定檔hibernate.cfg.xml
第五步:測試
以下是詳細步驟示範:
項目結構
第一步:建立資料庫表t_user,建立java對象USer.java
#資料庫表t_user
CREATE DATABASE hibernate_demo CHARSET 'UTF8';CREATE TABLE t_use(id INT(10) PRIMARY KEY AUTO_INCREMENT,uname VARCHAR(20) NOT NULL);
//建立java對象User.java
public class User {private Integer id;private String uname; //getter和setter省略 ......}
第二步:添加jar包
第三步:建立對應檔user.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"> <!--package:java對象包路徑 --><hibernate-mapping package="com.jonychen.model"> <!-- 設定物件與table的關係 --> <class name="User" table="t_user"> <!-- 指定主鍵name:表示java對象屬性名稱 column --> <id name="id" column="id" type="integer"> <!--配置主鍵自增策略 --> <generator class="native" /> </id> <!--配置其他屬性與欄位關聯關係 --> <property name="uname" column="uname" type="string" /> </class></hibernate-mapping>
第四步: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> <!--1、方言:指定資料庫類型 --> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!--2、配置資料來源 --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/hibernate_demo</property> <property name="connection.username">root</property> <property name="connection.password">mysql</property> <!--列印sql --> <property name="show_sql">true</property> <!--3、載入對應檔 --> <mapping resource="com/jonychen/model/user.hbm.xml" /> </session-factory></hibernate-configuration>
第五步,測試
1 package com.jonychen.test; 2 3 import org.hibernate.Session; 4 import org.hibernate.SessionFactory; 5 import org.hibernate.Transaction; 6 import org.hibernate.boot.registry.StandardServiceRegistryBuilder; 7 import org.hibernate.cfg.Configuration; 8 import org.hibernate.service.ServiceRegistry; 9 10 import com.jonychen.model.User;11 12 public class HibernateTest {13 14 public static void main(String[] args) {15 // TODO Auto-generated method stub16 //1、載入設定檔17 Configuration cfg=new Configuration();18 cfg.configure("hibernate.cfg.xml");19 20 21 //2、建立sessionFactory 22 ServiceRegistry serviceRegistry=new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build();23 SessionFactory sessionFactory=cfg.buildSessionFactory(serviceRegistry);24 25 //3、開啟全新session26 Session session=sessionFactory.openSession();27 28 try {29 //事務30 Transaction ts=session.beginTransaction();31 32 User user =new User();33 user.setUname("jonychen");34 //添加資料35 session.save(user);36 //提交事務37 ts.commit();38 } catch (Exception e) {39 // TODO Auto-generated catch block40 e.printStackTrace();41 }finally {42 //關閉串連43 if(session!=null) {44 session.close();45 }46 if(sessionFactory!=null) {47 sessionFactory.close();48 }49 50 }51 }52 }
在Eclipse裡添加外掛程式開發Hibernate