hibernate学习之session常用方法和HQL语句的学习
2016-09-25 14:03
459 查看
通过上面的总结知道 在一个hibernate中,是通过session来进行与数据库之间的通信的 因此我们要了解session的一些常用的方法
除了上文中提到过得session.save()方法
对象在session中总共有三种状态 瞬时态 持久态和游离态 session的save方法就是将瞬时态的变成持久态的 ,
session.delete()方法就相当于数据库中的delete方法 用于将持久态的变为游离态3
这张图可以很好的作为解释
同时session也具有update() save() delete() 方法
get方法用户通过标识符获得指定类的持久化对象
User user = (User) session.get(User.class, "123456");若没有 则返回为空
load方法和get方法一样 通过标识符获得指定类的持久化对象 但是要求持久化类的对象必须存在 否则就会产生异常
User us = (User) session.load(User.class, "123456");createQuery方法就是和HQL语句联合搭配起来使用的
首先我们可以根据名称类设置参数
Query query = session.createQuery("from user where age > :userAge");
//根据名称设置integer的参数
query.setInteger("userAge", 25);
要记住根据名称前要加一个冒号 来表示参数
第二种方法 也可以根据位置来设置参数
Query qu = session.createQuery("from user where age > ?");
//根据位置来设置 第一参数的位置为0
qu.setInteger(0, 25);
默认的第一个问号的位置是0
在这里建议使用名字来设置参数 这样可以提高代码的可读性
list()犯法用以返回java的list类型的数据
List user = (List) query.list();query的uniqueResult()方法用于返回唯一的结果 确保记录只有一个记录满足查询条件下才可以进行
query.executeUpdate()
可以支持HQL语句的更新和删除的操作
setFirstResult()方法获取记录的第一个方法 如果传入20 则表示提取第21个
setMaxResult()方法设置记录的最大记录数,在分页时有非常好的作用
HQL语句本省是不区分大小写的 但是在HQL语句中的类名和属性名是要区分大小写的
例如查询一个实体
String hql = "from user";
也可以为持久化类起别名
String hql1 = "from user as u";
加入where语句来表明条件
//限制查询的条件 不等于是<>
String hql2 = "from user as u where sex = '男' and age > 18";
只获取name属性
//只获取name属性
String hql3 = "select name from user";
一次获取多个属性
//也可以一次索引多个属性
String hql4 = "select name,age from u where sex = '男'";
//执行跟新
执行更新
//执行跟新
String hql8 = "update user set name = 'caokai'";聚合函数的应用
//HQL中的聚合函数
String hql5 = "select count(*),max(age),min(age),avg(age) from User";
也可以进行去重
//distinct来去除重复的数据
String hql6 = "select distinct from user";分组和排序
//分组和排序
String hql7 = "select avg(age) from user order by name"; 个人认为和SQL语句还是蛮相似的
HQL语句较好的
http://www.cnblogs.com/focusChen/articles/2401892.html http://blog.csdn.net/v123411739/article/details/28644007
session总结较好的
http://blog.csdn.net/shrek_xu/article/details/740991
除了上文中提到过得session.save()方法
对象在session中总共有三种状态 瞬时态 持久态和游离态 session的save方法就是将瞬时态的变成持久态的 ,
session.delete()方法就相当于数据库中的delete方法 用于将持久态的变为游离态3
这张图可以很好的作为解释
同时session也具有update() save() delete() 方法
get方法用户通过标识符获得指定类的持久化对象
User user = (User) session.get(User.class, "123456");若没有 则返回为空
load方法和get方法一样 通过标识符获得指定类的持久化对象 但是要求持久化类的对象必须存在 否则就会产生异常
User us = (User) session.load(User.class, "123456");createQuery方法就是和HQL语句联合搭配起来使用的
首先我们可以根据名称类设置参数
Query query = session.createQuery("from user where age > :userAge");
//根据名称设置integer的参数
query.setInteger("userAge", 25);
要记住根据名称前要加一个冒号 来表示参数
第二种方法 也可以根据位置来设置参数
Query qu = session.createQuery("from user where age > ?");
//根据位置来设置 第一参数的位置为0
qu.setInteger(0, 25);
默认的第一个问号的位置是0
在这里建议使用名字来设置参数 这样可以提高代码的可读性
list()犯法用以返回java的list类型的数据
List user = (List) query.list();query的uniqueResult()方法用于返回唯一的结果 确保记录只有一个记录满足查询条件下才可以进行
query.executeUpdate()
可以支持HQL语句的更新和删除的操作
setFirstResult()方法获取记录的第一个方法 如果传入20 则表示提取第21个
setMaxResult()方法设置记录的最大记录数,在分页时有非常好的作用
HQL语句本省是不区分大小写的 但是在HQL语句中的类名和属性名是要区分大小写的
例如查询一个实体
String hql = "from user";
也可以为持久化类起别名
String hql1 = "from user as u";
加入where语句来表明条件
//限制查询的条件 不等于是<>
String hql2 = "from user as u where sex = '男' and age > 18";
只获取name属性
//只获取name属性
String hql3 = "select name from user";
一次获取多个属性
//也可以一次索引多个属性
String hql4 = "select name,age from u where sex = '男'";
//执行跟新
执行更新
//执行跟新
String hql8 = "update user set name = 'caokai'";聚合函数的应用
//HQL中的聚合函数
String hql5 = "select count(*),max(age),min(age),avg(age) from User";
也可以进行去重
//distinct来去除重复的数据
String hql6 = "select distinct from user";分组和排序
//分组和排序
String hql7 = "select avg(age) from user order by name"; 个人认为和SQL语句还是蛮相似的
HQL语句较好的
http://www.cnblogs.com/focusChen/articles/2401892.html http://blog.csdn.net/v123411739/article/details/28644007
session总结较好的
http://blog.csdn.net/shrek_xu/article/details/740991
相关文章推荐
- SSH学习---Spring中常用的hql查询方法(getHibernateTemplate())(转载)
- Hibernate学习笔记(四)----核心开发接口、对象的三种状态、session常用方法
- HQL语句大全(转) && getHibernateTemplate()常用方法
- 学习hibernate(三) -- session常用方法
- HQL语句大全(转) && getHibernateTemplate()常用方法
- Spring 中常用的hql查询方法(getHibernateTemplate())(转)
- Spring中常用的hql查询方法(getHibernateTemplate())
- Spring中常用的hql查询方法(getHibernateTemplate())
- Spring中常用的hql查询方法(getHibernateTemplate())
- Hibernate的常用方法与HQL运算符的说明
- Spring中常用的hql查询方法(getHibernateTemplate())(转)
- Spring中常用的hql查询方法(getHibernateTemplate())
- Hibernate常用查询语句(hql)
- Spring中常用的hql查询方法(getHibernateTemplate())(转)
- 对象的三种状态(hibernate的session的get和load方法的区别,session的常用方法,session缓存)
- Spring中常用的hql查询方法(getHibernateTemplate())(转)
- Spring中常用的hql查询方法(getHibernateTemplate())
- Spring中常用的hql查询方法(getHibernateTemplate())
- Spring中常用的hql查询方法(getHibernateTemplate())
- Spring中常用的hql查询方法(getHibernateTemplate())(转)