工具类--------->
/** *用单例模式读取配置文件,并返回SessionFactory和Session */ package com.xx.utils; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public final class HibernateUtil { private HibernateUtil(){}; private static SessionFactory sf; private static Session s; static{ Configuration cfg = new Configuration(); cfg.configure(); sf = cfg.buildSessionFactory(); } public static SessionFactory getSessionFactory() { return sf; } public static Session getSession() { return sf.openSession(); } }
接口--------------------------->
/** * CURD接口 */ package com.xx.Dao; import com.xx.hibernate.User; public interface UserDao { public void saveUser(User user); public User findUserById(int id); public User findUserByName(String name); public void updateUser(User user); public void remove(User user); }
接口实现-------------------->
package com.itcast.Dao.impl; import org.hibernate.Session; import org.hibernate.Transaction; import com.itcast.Dao.UserDao; import com.itcast.hibernate.User; import com.itcast.utils.HibernateUtil; public class UserDaoImpl implements UserDao { public User findUserById(int id) { User user = null; Session s = null; try{ s = HibernateUtil.getSession(); user = (User)s.get(User.class, id); }finally{ if(s != null) s.close(); } return user; } public User findUserByName(String name) { User user = null; Session s = null; try{ s = HibernateUtil.getSession(); user = (User)s.createQuery("from User o where o.name =?") .setParameter(0, name).uniqueResult(); }finally{ if(s != null) s.close(); } return user; } public void remove(User user) { Session s = null; try{ s = HibernateUtil.getSession(); Transaction tx = s.beginTransaction(); s.delete(user); tx.commit(); }finally{ if(s != null) s.close(); } } public void saveUser(User user) { Session s = null; try{ s = HibernateUtil.getSession(); Transaction tx = s.beginTransaction(); s.save(user); tx.commit(); }finally{ if(s != null) s.close(); } } public void updateUser(User user) { Session s = null; try{ s = HibernateUtil.getSession(); Transaction tx = s.beginTransaction(); s.update(user); tx.commit(); }finally{ if(s != null) s.close(); } } }
Hibernate学习笔记1--------一个简单的应用
最新推荐文章于 2024-05-10 14:42:26 发布