好多在刚接触Hibernate进行sql查询的时候都不太清楚几种方法查询到的结果到底是什么,下面就结合实际工作中遇到的做个简单介绍,算是个开门红吧!
//-----return this.getSession().createSQLQuery(sql).addEntity(object.class).list();
可以使用sql语句 select * from A
该方法返回一个list<A>集合,可以在方法中get各个属性
//-----return (SgCk)this.getSession().createSQLQuery(sql).addEntity(SgCk.class).uniqueResult();
可以使用sql语句 select * from A a where a.id="+id+"
该方法返回一条数据,也就是说uniqueResult()返回唯一的结果集,这就要求wherw后面跟的条件必须能保证结果的唯一性。
//-----this.saveObject(object);
该方法不用写sql语句,这也是hibernate的强大之处,它可以执行insert和update语句 object是数据库的实体映射对象
主要区别在于添加的时候setId(null) 修改的时候setId(id)
它会自动识别,当id为空时会执行保存 当有id时执行修改,这时候只需要将需要修改的数据set到实体中
//-----return this.getObject(obj.getClass(), id);
该方法也很常用,也不用写sql语句 就是通过id查询一条数据,obj代表实体对象,传入id就会自动查询对应的数据
//-----这是用sql进行数据查询,后续介绍使用hql