关系映射数据库Hibernate使用详解:
-
在hql语句中,from后面接的不是表名,是实体名,from User 注:User是实体名,不是数据库中的表名。
-
查询并返回表中的数量:
String sql = "select count(*) as 书的总数 from Book";
//返回的是list集合类型
List list = this.getHibernateTemplate().find(sql);
*//注:Number类是Integer、Long、Byte、Double、Float、Short的父类,因此使用Number类是不会报数据类型转换错误的。--用的放心、用的安心--*
Number num = (Number) list.get(0);
return num.intValue();
3、查询表的所有字段和类型:
show columns from table;
4、 Hibernate更新表字段的操作:
首先根据id或者表中主键获得表,然后把要更新的字段set进去,最后执行update操作。
public void updateUser(int id,String username,String password) {
User user=this.getHibernateTemplate().get(User.class,id);
user.setUsername(username);
user.setPassword(password);
this.getHibernateTemplate().update(user);
}
5、 Hibernate删除表字段的操作:先获得要进行删除的表,然后执行delete操作。
public void deleteUser(int id){
User user=this.getHibernateTemplate().get(User.class,id);
this.getHibernateTemplate().delete(user);
}
6、分页实现:因为Hibernate中不支持limit关键字,它有专门的语句去代替limit。setFirstResult()表示从第几条数据开始,setMaxResults()是表示需要几条数据。具体实现如下代码:
//pageSize表示一页有多少条数据
String sql = "from Book";
Query query = session.createQuery(sql);
query.setFirstResult(1);
query.setMaxResults(pageSize);
--------我是不及格的分割线--------
//如果需要在分页中传值,例如:
String sql = "from Book where bookname= ?";
Query query = session.createQuery(sql);
query.setString(0, bookname);
query.setFirstResult(1);
query.setMaxResults(pageSize);