Hibernate開發環境搭建


一、下載Hibernate包的下載

官網地址:http://hibernate.org/orm/

下載版本:hibernate-release-4.3.11.Final

 

二、Hibernate jar包介紹

包名

用途

hibernate-core-4.3.11.Final.jar Hibernate核心包
antlr-2.7.7.jar Hibernate利用它實現從HQL到SQL的轉換
dom4j-1.6.1.jar 解析XML配置文件和XML映射文件
hibernate-commons-annotations-4.0.5.Final.jar Hibernate注解包
hibernate-jpa-2.1-api-1.0.0.Final.jar JPA2.1接口庫
jandex-1.1.0.Final.jar 用來索引Anotation的
javassist-3.18.1-GA.jar Hibernate用它來實現PO字節碼的動態生成
jboss-logging-3.1.3.GA.jar 日志服務通用庫
jboss-logging-annotations-1.2.0.Beta1.jar 實現帶注釋的借口的具體實現類
jboss-transaction-api_1.2_spec-1.0.0.Final.jar JTA規范包

 

三、Hibernate核心配置文件

hibernate.cfg.xml:是Hibernate的核心配置文件,主要功能有:

  • 配置數據庫連接的各種屬性
  • 注冊對象關系映射文件。
  • 開發階段的調試信息。
  • 運行時的日志信息。

    四、搭建Hibernate開發環境

  • 新建javaproject工程。
  • 新建libs文件夾,將hibernate中required的所有文件復制到java工程的libs文件夾中,將所連接的數據庫驅動包也復制到文件夾下。
  • 將hibernate中project下etc下的hibernate.cfg.xml和log4j.properties復制到SRC根目錄下。

    image

  •  

    五、測試代碼

    1、 創建學生表

    hibernate.cfg.xml配置文件

    <!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>
    
        <!-- 配置數據庫連接 -->
        <!-- Hibernate的方言:生成SQL語句的規則 -->
        <property name="hibernate.dialect">
            org.hibernate.dialect.MySQL5Dialect
        </property>
        <!-- 數據庫驅動包 -->
        <property name="hibernate.connection.driver_class">
            com.mysql.jdbc.Driver
        </property>
        <!-- 數據庫URL地址 -->
        <property name="hibernate.connection.url">
            jdbc:mysql://127.0.0.1:3306/test
        </property>
        <!-- 用戶名 -->
        <property name="hibernate.connection.username">root</property>
        <!-- 密碼 -->
        <property name="hibernate.connection.password">root</property>
    
        <!-- 是否輸出SQL語句 -->
        <property name="show_sql">true</property>
        <!-- 是否格式化SQL語句 -->
        <property name="format_sql">true</property>
        
        <!-- 如果對象有更新則重新生成SQL表  
            create:重新生成
            update:更新
         -->
        <property name="hbm2ddl.auto">update</property>
        
        <!-- 注冊實體映射文件 -->
        <mapping resource="com/lxit/entity/Student.hbm.xml" />
    </session-factory>
    </hibernate-configuration>

     

    2、學生類

    package com.lxit.entity;
    
    import java.io.Serializable;
    
    public class Student implements Serializable{
    
        public Student(){}
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
        
        public Student(String loginId, String loginPwd, String realName, String phone, String address, String email) {
            super();
            this.loginId = loginId;
            this.loginPwd = loginPwd;
            this.realName = realName;
            this.phone = phone;
            this.address = address;
            this.email = email;
        }
        private String loginId;
        private String loginPwd;
        private String realName;
        private String phone;
        private String address;
        private String email;
        
        public String getLoginId() {
            return loginId;
        }
        public void setLoginId(String loginId) {
            this.loginId = loginId;
        }
        public String getLoginPwd() {
            return loginPwd;
        }
        public void setLoginPwd(String loginPwd) {
            this.loginPwd = loginPwd;
        }
        public String getRealName() {
            return realName;
        }
        public void setRealName(String realName) {
            this.realName = realName;
        }
        public String getPhone() {
            return phone;
        }
        public void setPhone(String phone) {
            this.phone = phone;
        }
        public String getAddress() {
            return address;
        }
        public void setAddress(String address) {
            this.address = address;
        }
        public String getEmail() {
            return email;
        }
        public void setEmail(String email) {
            this.email = email;
        }
        public static long getSerialversionuid() {
            return serialVersionUID;
        }
        
        
    }

     

    3、實體映射文件

    <?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="com.lxit.entity.Student" table="Student">
        
            <id name="loginId" column="loginId">
                <generator class="assigned"></generator>
            </id>
            
            <property name="loginPwd" column="loginPwd"></property>
            <property name="realName" column="realName"></property>
            <property name="phone" column="phone"></property>
            <property name="address" column="address"></property>
            <property name="email" column="email"></property>
            
        </class>
    </hibernate-mapping>

     

    4、測試類

    package com.lxit.test;
    
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
    import org.hibernate.cfg.Configuration;
    import org.hibernate.service.ServiceRegistry;
    import org.hibernate.tool.hbm2ddl.SchemaExport;
    import org.junit.Test;
    
    import com.lxit.entity.Student;
    
    public class StudentTest {
        
        //@Test
        public void createTable(){
            Configuration cfg = new Configuration().configure();
            SchemaExport export = new SchemaExport(cfg);
            export.create(true, true); //創建表,在控制台輸出SQL語句
        }
        
        @Test
        public void add(){
            Configuration cfg = new Configuration().configure();
            
            //hibernate3.0版本創建sessionFactory的方法
             //SessionFactory factory = cfg.buildSessionFactory();  
            
            //hibernate4.0版本創建sessionFactory方法
             StandardServiceRegistryBuilder ssrb = new StandardServiceRegistryBuilder().applySettings(cfg.getProperties());
            ServiceRegistry sr = ssrb.build();
            SessionFactory factory = cfg.buildSessionFactory(sr);
            Session session = factory.openSession();        
            Transaction tran = session.beginTransaction();
            
            Student stu = new Student("zhangsan", "123123", "張三", "12345678901", "廣東深圳", "zhangsan@163.com");
            
            try {
                session.save(stu);
                tran.commit();
                System.out.println("保存成功!");
            } catch (Exception e) {
                tran.rollback();
            }finally{
                session.close();
                factory.close();
            }
        }
    }


    免責聲明!

    本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



     
    粵ICP備18138465號   © 2018-2025 CODEPRJ.COM