Hibernate学习-------数据库增删改查操作(部分)

(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();
	}




郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。