zoukankan      html  css  js  c++  java
  • 菜鸟学习Hibernate——简单的增、删、改、查操作

    讲述如何利用Hinbernate框架实现简单的数据库操作。

    1、加入junit.jar

    2、新建一个工具类HibernateUtils.Java把一些对session的公共操作封装起来


    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
    
    public class HibernateUtils {
    /*
      *读取Hibernate.cfg.xml文件
    */
    	private static SessionFactory factory;
    	
    	static {
    		try {
    			//读取hibernate.cfg.xml文件
    			Configuration cfg = new Configuration().configure();
    			
    			//建立SessionFactory
    			factory = cfg.buildSessionFactory();
    		}catch(Exception e) {
    			e.printStackTrace();
    		}
    	}
    	/*
    	  *打开Session
    	*/
    	
    	public static Session getSession() {
    		return factory.openSession();
    	} 
    	/*
    	  *关闭Session
    	*/
    	
    	public static void closeSession(Session session) {
    		if (session != null) {
    			if (session.isOpen()) {
    				session.close();
    			}
    		}
    	}
    	
    	public static SessionFactory getSessionFactory() {
    		return factory;
    	}
    }
    

    3、新建一个test类继承TestCase(Junit包里面的)然后下面就利用test类对User对象的增、删、改、查。

    import java.util.Date;
    
    import org.hibernate.Session;
    
    import com.bjpowernode.hibernate.HibernateUtils;
    
    import com.bjpowernode.hibernate.User;
    
    import junit.framework.TestCase;
    
    public class test extends TestCase {
    /*
     * 增加User
     */
    	public void testSave() {
    		
    		Session session = null;
    		try {
    			session = HibernateUtils.getSession();
    			session.beginTransaction();
    			
    			User user = new User();
    			user.setName("李四");
    			user.setPassword("123");
    			user.setCreateTime(new Date());
    			user.setExpireTime(new Date());
    			session.save(user);
    			session.getTransaction().commit();
    		}catch(Exception e) {
    			e.printStackTrace();
    			session.getTransaction().rollback();
    		}finally {
    			HibernateUtils.closeSession(session);
    		}
    	}
    	/**
    	 * 删除
    	 */
    	public void testDel(){
    		Session session = null;
    		try {
    			session = HibernateUtils.getSession();
    			session.beginTransaction();
    			
    			User user=(User)session.load(User.class, "4028989545a244640145a24466300001");
    			
    			session.delete(user);
    			session.getTransaction().commit();
    		}catch(Exception e) {
    			e.printStackTrace();
    			session.getTransaction().rollback();
    		}finally {
    			HibernateUtils.closeSession(session);
    		}
    	}
    	
    	/**
    	 * 修改
    	 */
    	public void testUpdate(){
    		Session session = null;
    		try {
    			session = HibernateUtils.getSession();
    			session.beginTransaction();
    			
    			User user=(User)session.load(User.class, "4028989545a243ca0145a243cbf80001");
    			user.setName("王五");
    			session.update(user);
    			session.getTransaction().commit();
    		}catch(Exception e) {
    			e.printStackTrace();
    			session.getTransaction().rollback();
    		}finally {
    			HibernateUtils.closeSession(session);
    		}
    	}
    	
    	/**
    	 * 查询
    	 */
    	public void testLoad(){
    		Session session = null;
    		try {
    			session = HibernateUtils.getSession();
    			session.beginTransaction();
    			
    			User user=(User)session.load(User.class, "4028989545a243ca0145a243cbf80001");
    			System.out.println(user.getName());
    			System.out.println(user.getId());
    			System.out.println(user.getPassword());
    			System.out.println(user.getClass());
    			System.out.println(user.getCreateTime());
    			System.out.println(user.getExpireTime());
    			session.getTransaction().commit();
    		}catch(Exception e) {
    			e.printStackTrace();
    			session.getTransaction().rollback();
    		}finally {
    			HibernateUtils.closeSession(session);
    		}
    	}
    }
    


  • 相关阅读:
    <img src="">中src不合法导致Page_Load两次甚至多次
    在浏览器地址栏中查看cookie
    cookie在二级域名下的前后台的不同,后台C#调用前台js方法容易犯的错误
    VS调试快捷键
    href="#"与href="javascript:void(0)"的区别
    window.location.href()与window.open()区别
    兼容IE和Firefox的事件的写法
    sp.net中手写ajax检测用户是否存在?
    Eclipse快捷键大全
    修改navigationItem.backBarButtonItem.title的值无效的解决办法
  • 原文地址:https://www.cnblogs.com/baobeiqi-e/p/9884827.html
Copyright © 2011-2022 走看看