多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] # 简介 Query接口让你方便地对数据库及持久对象进行查询,它可以有两种表达方式:HQL语言或本地数据库的SQL语句。Query经常被用来绑定查询参数、限制查询记录数量,并最终执行查询操作。 通过Query主要完成查询操作. 我们通过Query可以执行hql语句. Query query=Session.createQuery(hql); 下面这个可以执行sql语句 SQLQUery sqlQuery=Session.createSQLQuery(sql); SQLQuery是Query的子. ![](https://box.kancloud.cn/e4555d70ec93023ae44208432c2b332e_820x283.png) ![](https://box.kancloud.cn/a5a720db4a651f4349a9889a2b395bb7_809x342.png) # 查询所有操作---使用HQL ![](https://box.kancloud.cn/4cf4ca82ecaffff545de098dc8c00fb0_629x199.jpg) # 分页查询 ![](https://box.kancloud.cn/b6448edb5e807d582f916f701871b8ba_590x360.jpg) # 查询指定列信息 ![](https://box.kancloud.cn/ce8b2242f161165cf5ce62e8cf21bd8f_634x198.jpg) Select name ,address from Customer; 得到的是`List<Object[]>`结果 要想得到`List<Customer>`结果 1. 在Customer类中生成以name,address为参数的构造,注意,无参数构造也要有。 2. Select new Customer(name,address) from Customer; # 条件查询 可以使用where关键字 ![](https://box.kancloud.cn/b29ac4fab84a81114fb7cc2f80a41390_633x430.png) 无名称参数 `from Customer where name=?` 对其进行赋值 `query.setParameter(0,”张三”)` 有名称参数 `from Customer where name=:myname;` 对其进行赋值 `query.setParameter(“myname”,”李四”);` 如果查询结果可以保证就是唯一 的,我们可以使用 `query. uniqueResult()`来得到一个单独对象. # 执行本地SQL 要想执行本地sql SQLQuery sqlQuery=session.createSqlQuery(String sql); 使用addEntity方法来将结果封装到指定的对象中,如果不封装,得到的是`List<Object>` 如果sql中有参数,我们使用setParameter方法完成参数传递。 如果结果就是一个可以使用uniqueResult()来得到一个单独对象 ![](https://box.kancloud.cn/95c7fd50f94a6317c509cea076893918_628x340.png) ![](https://box.kancloud.cn/5f2c1332d9912d3c1f343c57f7f7f23f_640x323.png)