(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();
}
@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();
} @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();
}
Hibernate学习-------数据库增删改查操作(部分)
原文地址:http://blog.csdn.net/z1137730824/article/details/38929683