所使用到的jar 包:
1、创建实体类
public class User { private Integer id; private String name; private String address; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
2、配置映射文件
3、配置hiberante.cfg.xml; 详细
org.hibernate.dialect.MySQLDialect com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/spring?useUnicode=true&characterEncoding=UTF-8 root true true update
4、测试用例:
public class Conn { public void addUser(){ Configuration cfg=new Configuration(); cfg.configure(); ServiceRegistry sr=new ServiceRegistryBuilder().applySettings(cfg.getProperties()).buildServiceRegistry(); SessionFactory sf=cfg.buildSessionFactory(sr); Session s=sf.openSession(); Transaction trans=s.beginTransaction(); User user=new User(); user.setName("汤姆"); user.setAddress("北海"); s.save(user); trans.commit(); s.close(); }}
代码优化:
新建一个类名字是HibernateSessionFactory:
import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;public class HibernateSessionFactory { private static final ThreadLocal优化过以后代码:threadLocal = new ThreadLocal (); private static org.hibernate.SessionFactory sessionFactory; private static Configuration configuration = new Configuration(); private static ServiceRegistry serviceRegistry; static { try { configuration.configure(); serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry(); sessionFactory = configuration.buildSessionFactory(serviceRegistry); } catch (Exception e) { System.err.println("%%%% Error Creating SessionFactory %%%%"); e.printStackTrace(); } } private HibernateSessionFactory() { } public static Session getSession() throws HibernateException { Session 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 rebuildSessionFactory() { try { configuration.configure(); serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry(); sessionFactory = configuration.buildSessionFactory(serviceRegistry); } catch (Exception e) { System.err.println("%%%% Error Creating SessionFactory %%%%"); e.printStackTrace(); } } public static void closeSession() throws HibernateException { Session session = (Session) threadLocal.get(); threadLocal.set(null); if (session != null) { session.close(); } } public static org.hibernate.SessionFactory getSessionFactory() { return sessionFactory; } public static Configuration getConfiguration() { return configuration; }}
public void addUser(){ Session s=HibernateSessionFactory.getSession(); Transaction trans=s.beginTransaction(); User user=new User(); user.setName("汤姆11"); user.setAddress("北海"); s.save(user); trans.commit(); s.close(); }