准备工作:
这种做法不可取,因为最好是要单独的一个HibernateUtil类(因为SessionFactory最好是唯一的)来生成session会话对象的,但我这里图省事,就这样写了,因为测试较为方便。详细的可以看我的笔记:Hibernate精通笔记
/** 得到session方法
* @return
*/
protected Session getSession() {
//加载配置文件
Configuration configuration = new Configuration().configure();
//创建session工厂
SessionFactory factory = configuration.buildSessionFactory();
//创建session对象
Session session = factory.getCurrentSession();
return session;
}
1、添加单个对象至数据库
/**
* 添加对象到数据库
*/
@org.junit.Test
public void testAdd(){
//获得session对象
Session session = getSession();
//通过session开启事务
Transaction trans = session.beginTransaction();
//添加user对象
User user = new User();
user.setUsername("万星明");
user.setPassword("666");
session.save(user);
//提交事务
trans.commit();
}
2、从数据库中删除单个对象
/**
* 从数据库删除对象
*/
@org.junit.Test
public void testDelete() {
//获得session对象
Session session = getSession();
//通过session开启事务
Transaction trans = session.beginTransaction();
//获取一个对象
User user = new User();
user.setId(5);
//删除
session.remove(user);
//提交事务
trans.commit();
}
3、修改数据库单个对象
/**
* 修改数据库中的对象
*/
@org.junit.Test
public void testUpdate() {
//获得session对象
Session session = getSession();
//通过session开启事务
Transaction trans = session.beginTransaction();
//得到对象
User user = (User)session.get(User.class,3);
user.setUsername("万星月");
//修改
session.update(user);
//提交事务
trans.commit();
}
4、查询数据库全部对象包装成集合
/**
* 查询数据库中对象(HQL查询)
*/
@org.junit.Test
public void testQuery() {
//获得session对象
Session session = getSession();
//通过session开启事务
Transaction trans = session.beginTransaction();
//HQL查询
String hql="from User";
//查询得到Query对象
Query<User> query = session.createQuery(hql,User.class);
//通过query对象得到集合
List<User> list = query.list();
//遍历集合
for (User user : list) {
System.out.println(user.getUsername());
}
trans.commit();
}