SSHÂóÌ(Îå)SpringÔËÓõ½HibernateÖÐ(Ò»)

2014-11-23 23:41:33 ¡¤ ×÷Õß: ¡¤ ä¯ÀÀ: 3

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.