HQL代码笔记整理
来源:互联网 发布:重庆知行卫生学校电话 编辑:程序博客网 时间:2024/05/16 03:29
测试类代码:
@Test
publicvoid testSelectMySelf(){
Stringhql="select newNewsBean(n.newsid,n.newstitle,n.author) from NewsBean as n";
Queryquery=session.createQuery(hql);//import org.hibernate.Query
List<NewsBean>list=query.list();
for(NewsBeannewsBean:list){
System.out.println("自定义id:"+newsBean.getNewsid());
System.out.println("自定义newstitle:"+newsBean.getNewstitle());
System.out.println("自定义author:"+newsBean.getAuthor());//通过别名来获取
}
}
NewsBean实体类必须添加构造函数代码,否则报错:
public NewsBean(intnewsid, String newstitle, String author) {
super();
this.newsid = newsid;
this.newstitle = newstitle;
this.author = author;
}
持久化类中无参构造方法的必要性
String hql=
" from NewsBean as n";
默认去调用默认的构造函数
和
String hql=
"select newNewsBean(n.newsid,n.newstitle,n.author) from NewsBean as n";
必须去调用自定义的,要添加上取什么字段,添加什么函数
Distinct返回不重复的查询结果
相同没有意义的,去掉重复的元素。
测试代码:
@Test
publicvoid testNoDistinct(){
Stringhql="select n.typename from NewstypeBean as n";//查询类型名称,重复的省却
Queryquery=session.createQuery(hql);//import org.hibernate.Query
List<Object>list=query.list();
for(Object newsBean:list){
System.out.println("typename:"+newsBean);
}
}
有重复的项:
在String hql="select distinct n.typename fromNewstypeBean as n";//查询类型名称,重复的省却
Where子句 :比较运算
代码如下:
@Test
public void testWhere1(){
Stringhql="from UsersBean as n wheren.userleval>0";//查询类型名称,重复的省却
Queryquery=session.createQuery(hql);//import org.hibernate.Query
List<Object>list=query.list();
for(Object newsBean:list){
System.out.println(newsBean);
}
}
(一)Null值运算
String hql="from UsersBean as nwhere n.userleval is null(is not null)";
String hql="from UsersBean as nwhere n.userleval = null(!= null)";
范围运算:
(二)判断属性值
(1)Not in(列表)
存在:返回true
不存在:返回false
(1) not between 值1 and 值2
String hql="from NewstypeBeanas n where n.typeid in(1,2)";
String hql="from NewstypeBeanas n where n.typeid not in(1,2)";
(三)字符串模式匹配:
(1) 通过字符串关键字匹配 like关键字
(2) %任何字母(下划线后不可以有空格否则没有结果显示)
Stringhql="from NewstypeBean as n where n.typename like '%娱_'";
(3)%完整的名称%
String hql="from NewstypeBeanas n where n.typename like '%军事%'";
(四)逻辑运算
(1)and(逻辑与)、or(逻辑或)
Stringhql="from NewstypeBean as n where n.typeid=1 and n.typename like '%娱乐%'";
(2)not(逻辑非)
(五)集合运算
Is(not) entity(不)为空
Member of 元素属于集合
测试代码:
测试代码:
//返回查询单个对象代码,多个会报错。
测试代码:
@Test
public voidtestWhere4_dangeduixiang(){
//n.typeid=1
Stringhql="from NewstypeBean as n wheren.typeid=1";//报错
//String hql="from NewstypeBean as n wheren.typename like '%娱乐%'";//报错
Queryquery=session.createQuery(hql);//import org.hibernate.Query
//返回单个对象
NewstypeBeannewstypeBean=(NewstypeBean) query.uniqueResult();
System.out.println("testWhere4_dangeduixiang:"+newstypeBean.getTypename());
}
测试代码:
public voidtestWhere5_orderBy(){
//String hql="from NewstypeBean as n order by n.typeidasc";
Stringhql="from NewstypeBean as n order by n.typeid desc";
Queryquery=session.createQuery(hql);//import org.hibernate.Query
List<Object>list=query.list();
for(Object newsBean:list){
System.out.println(newsBean);
}
}
- HQL代码笔记整理
- 整理笔记---基础的HQL
- HQL的使用整理
- Nutch主流程代码阅读笔记整理
- c高级笔记及代码整理
- 代码笔记——待整理
- live555的有关代码学习笔记整理
- Hibernate学习笔记:HQL
- Hibernate 笔记 HQL查询
- hive HQL笔记
- HQL学习笔记
- hibernate HQL学习笔记
- hibernate项目的HQL(SQL区别、Select语句、返回list、map、object数组与单个对象)笔记整理
- Hibernate的hql常用语句整理汇总
- HQL语法与详细解释[整理]
- Hibernate学习整理(Hibernate优化及HQL)
- Hibernate HQL优化学习笔记
- Hibernate学习笔记----HQL(1)
- Java常见问题分析(内存溢出、内存泄露、线程阻塞等)
- 阅读书籍推荐
- Spark RDD算子介绍
- JUC之JDK自带锁ReentrantLock
- 搜狐刷阅读量方法,搜狐自媒体刷阅读量方法
- HQL代码笔记整理
- listview实现的tree树结构
- (二十三)Qt中的容器类简介
- oracle JDNI 配置
- 1085. Perfect Sequence (25) -- 二分法
- centos6.4下tuxedo11gR1安装及jolt连接测试
- Android小技巧—Activity管理
- 深入了解 JavaScript 中的 for 循环
- 就这样,我只用一天就开发出了一款APP