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、测试