1、在 PersonTest 中实现查询
public class PersonTest extends HibernateUtils{
// 查询全部值
@Test
public void testQueryPerson(){
Session session = sessionFactory.openSession(); //打开与数据库的链接
List<Person> personList = session.createQuery(" from Person").list(); //参数为 HQL语句,Person是持久化类的名字
for(Person person: personList){
s.o.p(person.getPname());
}
session.close(); //关闭与数据库的链接
}
// 查询某一个值
public void testQueryPersonById(){
Session session = sessionFactory.openSession(); //打开与数据库的链接
/*
* 按照主键方式查询数据库表中的记录,
* 第二个参数的类型必须和持久化中标识符的类型保持一致
*/
Person person = (Person)session.get(Person.clazz, 1L) //参数为 HQL语句,Person是持久化类的名字
s.o.p(person.getPname());
session.close(); //关闭与数据库的链接
}
// 删除,Hibernate内部会检查标识符,看标识符中的值和数据库中对应的表中有没有对应的记录,有的话就删除
@Test
public void testDeletePerson(){
Session session = sessionFactory.openSession(); //打开与数据库的链接
Transaction transaction = session.beginTransaction();
/*方法一:
* 1、根据ID,把值从数据库中查找出来
* 2、把对象删除掉
*/
//Person person = (Person)session.get("Person.clazz, 1L);
//session.delete(person);
/*方法二:
* 1、新创建一个person 对象
* 2、给person对象的标示符赋值
* 3、调用 session.delete() 删除
*/
Person person = new Person();
person.setPid(2L);
session.delete(person);
transaction.commit();
session.close(); //关闭与数据库的链接
}
// 修改
@Test
public void testUpdatePerson(){
Session session = sessionFactory.openSession(); //打开与数据库的链接
Transaction transaction = session.beginTransaction();
/*
* 1、根据ID,把值从数据库中查找出来
* 2、进行修改
* 3、进行update操作
*/
Person person = (Person)session.get("Person.clazz, 1L);
session.setPsen("保密");
session.update(person);
transaction.commit();
session.close(); //关闭与数据库的链接
}
}