Hibernate——(2)增删改查

案例名称:Hibernate完成增删改查

案例描述:抽取出工具类并完成删除、修改、查询功能。

具体过程:

1、使用上面的例子(Hibernate——(1)Hibernate入门http://blog.csdn.net/dawanganban/article/details/13748235

2、新建HibernateUtils :用于封装创建Session的方法。

package com.xsyu.tts.util;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtils {
	private static Configuration conf;
	private static SessionFactory factory;
	// conf 对象只要加载一次就可以了
	// 如果放入 openSession 方法中效率会降低
	static {
		conf = new Configuration();
		conf.configure();
		factory = conf.buildSessionFactory();
	}

	public static Session openSession() {
		return factory.openSession();
	}
}
如上面代码中,每个用户对应一个Session,但是SessionFactory是共享的

删除指定ID的User

3、修改TestHibernate

增加方法test2(),用于删除指定ID的User

	/*
	* 删除指定ID的User
	*/
	public void tst2() {
		Session session = HibernateUtils.openSession();
		User user = new User();
		user.setId(1);
		// 方式1
		/*
		 * Transaction tx = session.getTransaction(); tx.begin();
		 */
		// 方式2:简写
		Transaction tx = session.beginTransaction();
		session.delete(user);
		tx.commit();
		session.close();
	}
4、测试

(1)运行TestHibernate


(2)查看数据库


更改指定ID的User

5、修改TestHibernate

	/**
	 * 更改User
	 */
	@Test
	public void tst3() {
		User user = new User();
		user.setId(3);
		user.setLoginName("ssh");
		user.setPassword("xyz");
		user.setName("Hibernate");
		Session session = HibernateUtils.openSession();
		Transaction tx = session.beginTransaction();
		session.update(user);
		tx.commit();
		session.close();
	}
6、测试

\

查询所有的User

7、修改TestHibernate

	/**
	 * 查询所有的User
	 */
	@Test
	public void tst4() {
		Session session = HibernateUtils.openSession();
		// HQL -- Hibernate提供的面向对象的查询语句
		Query query = session.createQuery("from User");
		List<User> userList = query.list();
		for (User user : userList) {
			System.out.println(user.getId() + "," + user.getName() + ","
					+ user.getLoginName() + "," + user.getPassword());
		}
		session.close();
	}
8、测试



posted on 2013-11-03 15:23  岚之山  阅读(153)  评论(0编辑  收藏  举报

导航