(1)增加和删除
<span style="white-space:pre"> </span>@Test public void test() { EStudent student=new EStudent(); student.setName("张三"); student.setSex("男"); Session session=sf.openSession(); session.beginTransaction(); session.save(student);//增 //删除操作delete EStudent s=new EStudent(); s.setId(4);//设置ID session.delete(s); session.getTransaction().commit(); session.close(); }
(2)get和Load查询,注意两个的区别
<span style="white-space:pre"> </span>@Test public void testLoad()//Load读取数据库 { Session session=sf.openSession(); session.beginTransaction(); //参数分别为EStudent实体类和要查询的主键 //Load只有当需要查询的对象的时候(比如getName)时才会生成并执行SQL语句 //返回的是代理对象 EStudent s=(EStudent) session.load(EStudent.class, 1); System.out.println(s.getId()+"--"+s.getName()); session.getTransaction().commit(); // System.out.println(s.getId()+"--"+s.getName());//如果只有在这使用到查询的对象的属性方法会报错 session.close(); } @Test public void testGet()//get读取数据库 { Session session=sf.openSession(); session.beginTransaction(); //参数分别为EStudent实体类和要查询的主键 //立即生成并执行SQL语句 EStudent s=(EStudent) session.get(EStudent.class, 1); System.out.println(s.getId()+"--"+s.getName()); session.getTransaction().commit(); session.close(); }
(3)update更新操作
@Test public void testUpdate()//更新数据库 { Session session=sf.openSession(); session.beginTransaction(); //先查询再修改,如果修改后的属性跟原来的相同则不进行更新 //参数分别为EStudent实体类和要查询的主键 //立即生成并执行SQL语句 EStudent s=(EStudent) session.get(EStudent.class, 1); s.setName("dou豆1"); session.update(s); //先创建一个新的对象,设置ID再修改,如果不设置ID,会出错 //如果只设置了部分属性,则未设置的属性会为空值或者默认值 EStudent s2=new EStudent(); s2.setId(6);//数据库中存在,如果设置的ID在数据库中不存在同样会出错 s2.setName("豆豆豆豆"); session.update(s2); session.getTransaction().commit(); session.close(); }
(4)HQL更新操作
@Test public void testUpdateHQL()//更新数据库 使用HQL { Session session=sf.openSession(); session.beginTransaction(); //org.hibernate.Query 注意Update的对象 Query q=session.createSQLQuery("Update newtablestudent set name='张三' where name='豆豆豆豆'"); q.executeUpdate();//更新 session.getTransaction().commit(); session.close(); }
时间: 2024-11-08 18:55:50