Hibernate job 1

package com.vo;  
  
public class User {  
    private int id;  
    private String name;  
    private int age;  
    private String code;  
      
    public User(){}  
    public User(int id,String name){  
        this.id = id;  
        this.name = name;  
    }  
      
    public String getCode() {  
        return code;  
    }  
    public void setCode(String code) {  
        this.code = code;  
    }  
    public int getId() {  
        return id;  
    }  
    public void setId(int id) {  
        this.id = id;  
    }  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
    public int getAge() {  
        return age;  
    }  
    public void setAge(int age) {  
        this.age = age;  
    }  
}  
hibernate-config.xml用于配置数据库连接,注册MySql方言,注册Student.hbm.xml的mapping


[html] view plain copy
<?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">  
<!-- Generated by MyEclipse Hibernate Tools.                   -->  
<hibernate-configuration>  
  
<session-factory>  
    <property name="myeclipse.connection.profile">mm</property>  
    <property name="dialect">  
        org.hibernate.dialect.MySQLDialect  
    </property>  
    <property name="connection.username">root</property>  
    <property name="connection.url">  
        jdbc:mysql://localhost:3306/exam  
    </property>  
    <property name="connection.driver_class">  
        com.mysql.jdbc.Driver  
    </property>  
    <property name="show_sql">true</property>  
    <property name="format_sql">true</property>  
    <property name="hbm2ddl.auto">update</property>  
    <property name="cache.region.factory_class">  
        org.hibernate.cache.EhCacheRegionFactory  
    </property>  
    <property name="cache.use_query_cache">true</property>  
    <property name="cache.use_second_level_cache">true</property>  
    <property name="connection.password">970123</property>  
  
    <mapping resource="com/vo/Student.hbm.xml" />  
  
</session-factory>  
  
</hibernate-configuration>  
Student.hbm.xml用于编写Student的列名与属性名对应关系
[html] view plain copy
<?xml version="1.0"encoding="UTF-8"?>  
<!DOCTYPE hibernate-mapping PUBLIC   











          





  
import org.hibernate.Session;  
import org.hibernate.SessionFactory;  
import org.hibernate.cfg.Configuration;  
import org.hibernate.service.ServiceRegistry;  
import org.hibernate.service.ServiceRegistryBuilder;  
  
/  
public class HibernateSessionFactory {  
    private static Configuration configuration = new Configuration();  
    private static ServiceRegistry serviceRegistry;  
    private static SessionFactory sessionFactory;  
    private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();  
      
    public static Configuration getConfiguration() {  
        return configuration;  
    }  
  
    public static SessionFactory getSessionFactory() {  
        return sessionFactory;  
    }  
  
  
    static{  
        configuration.configure("hibernate-config.xml");  
        serviceRegistry = new ServiceRegistryBuilder()  
                        .applySettings(configuration.getProperties())  
                        .buildServiceRegistry();  
        sessionFactory = configuration.buildSessionFactory(serviceRegistry);  
    }  
      
    private static void rebuildSessionFactory(){  
        configuration.configure();  
        serviceRegistry = new ServiceRegistryBuilder()  
                        .applySettings(configuration.getProperties())  
                        .buildServiceRegistry();  
        sessionFactory = configuration.buildSessionFactory(serviceRegistry);  
    }  
      
    public static Session getSession(){  
        Session session = threadLocal.get();  
        if(session==null || !session.isOpen()){  
            if(sessionFactory==null){  
                rebuildSessionFactory();  
            }  
            session = (sessionFactory!=null) ? sessionFactory.openSession() : null;  
            threadLocal.set(session);  
        }  
        return session;  
    }  
      
    public static void closeSession(){  
        Session session = threadLocal.get();  
        if(session!=null){  
            session.close();  
            threadLocal.set(null);  
        }  
    }  
      
}  
Test class, for single data insertion test,


[java] view plain copy
package com.util;  
  
import java.util .Iterator;  
import java.util.List;  
  
import org.hibernate.Query;  
import org.hibernate.Session;  
import org.hibernate.Transaction;  
import org.junit.Test;  
import com.vo.Student;  
  
public class TestHibernate {  
      
    @ Test  
    public void saveUser(){  
        Student User = new User();  
        student.setAge(20);  
        student.setName("Fzhx");  
        student.setCode("007");  
        Session session = HibernateSessionFactory.getSession();  
        Transaction tx = session.beginTransaction();//开启事务  
        session.save(User);  
        tx.commit();  
        HibernateSessionFactory.closeSession();  
    }  
}  

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325961097&siteId=291194637