SpringºÍhibernate½áºÏ.
µ¥´¿Hibernate³ÌÐò
1¡¢ Ê×ÏÈÊǵ¼ÈëhibernateµÄjar°ü£¬²½Öè¼ûhttp://blog.csdn.net/lovesummerforever/article/details/19170795£¬µ¼ÈëhibernateÏà¹Øjar°ü¡£
2¡¢ ½¨Á¢Óû§ºÍÓû§²Ù×÷¼Ç¼ʵÌ壬Log.javaºÍUser.java¡£´úÂëÈçÏÂËùʾ¡£
Log.java
import java.util.Date;
public class Log {
private int id;
//ÈÕÖ¾µÄÀà±ð.ÈÕÖ¾Ò»°ãÆðµ½Ò»¸ö²»¿É·ñÈÏÐÔ.
//²Ù×÷ÈÕÖ¾ °²È«ÈÕÖ¾ ʼþÈÕÖ¾.
private String type;
private String detail;
private Date time;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getDetail() {
return detail;
}
public void setDetail(String detail) {
this.detail = detail;
}
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
}
User.java
public class User {
private int id;
private String name;
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;
}
}
3¡¢ ²¢½¨Á¢ÓëÖ®¶ÔÓ¦µÄʵÌåÅäÖÃÎļþ£¬Log.hbm.xmlºÍUse.hbm.xml¡£´úÂëÈçÏÂËùʾ¡£
Log.hbm.xml
4¡¢ Manager²ã´úÂëÈçÏÂËùʾ¡£
LogManager.java½Ó¿Ú
public interface LogManager {
//Ìí¼ÓÈÕÖ¾.·½·¨
public void addLog(Log log);
}
LogManagerImplʵÏÖ
public class LogManagerImpl implements LogManager {
@Override
public void addLog(Log log) {
HibernateUtils.getSessionFactory().getCurrentSession().save(log);
}
}
UserManager½Ó¿Ú
public interface UserManager {
public void addUser(User user);
}
UserManagerImpl.javaʵÏÖ
public class UserManagerImpl implements UserManager {
@Override
public void addUser(User user) {
Session session = null;
try {
//Õâ¸ösessionÖÐÊǷŵ½threadlocal.
session = HibernateUtils.getSessionFactory().getCurrentSession();
session.beginTransaction();
// ÍøÓû§±íÖÐÌí¼ÓÒ»ÌõÍ¬Ê±ÍøÈÕÖ¾ÖÐÌí¼ÓÒ»Ìõ.
session.save(user);
Log log = new Log();
log.setType("²Ù×÷ÈÕÖ¾");
log.setTime(new Date());
log.setDetail("xxx");
LogManager logManager = new LogManagerImpl();
//Ìí¼ÓÈÕÖ¾.
logManager.addLog(log);
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally{
HibernateUtils.closeSession(session);
}
}
}
5¡¢ ÊÇͨ¹ýsessionFactoryÀ´´´½¨session£¬Í¨¹ýsessionÀ´¿ªÆôÌá½»ºÍ¹Ø±Õ»Ø¹öÊÂÎñ£¬ÎÒÃǰÑsessionµÄ¿ªÆô¹Ø±Õ·â×°µ½Ò»¸ö¹¤¾ßÀàÖС£HibernateUtils.java´úÂëÈçÏÂËùʾ¡£
public class HibernateUtils {
private static SessionFactory factory;
static {
try {
//¶ÁÈ¡hibernate.cfg.xmlÎļþ
Configuration cfg = new Configuration().configure();
//½¨Á¢SessionFactory
factory = cfg.buildSessionFactory();
}catch(Exception e) {
e.printStackTrace();
}
}
public static Session getSession() {
return factory.openSession();
}
public static void closeSession(Session session) {
if (session != null) {
if (session.isOpen()) {
session.close();
}
}
}
public static SessionFactory getSessionFactory() {
return factory;
}
}
6¡¢ ÅäÖÃhibernate.cfg.xmlÎļþ£¬°üÀ¨Êý¾Ý¿âÃû³Æ£¬Êý¾Ý¿â¹ØÁªµÄ±í£¬ÒÔ¼°Óû§ÃûÃÜÂëµÈ¡£´úÂëÈçÏÂËùʾ¡£
com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/spring_hibernate_1 root root org.hibernate.dialect.