Hibernate_查询_多种查询方式介绍、HQL详解(一)
来源:互联网 发布:园林景观设计制图软件 编辑:程序博客网 时间:2024/06/01 12:14
调整java单行格式化时注释不换行:Window --> Preferences --> Java --> Code Style --> Formatter --> New(自已新建一个格式) --> Edit --> Comments --> Maximum line width for comments:xxx(拉到最底下,调整右边框内数字)HQL查询1,简单查询2,带上过滤条件的(可以使用别名):Where3,带上排序条件的:Orace by4,指定select子句(不可以使用select *)可以使用new语法,指定把查询出的部分属性封装到对象中5,执行查询,获得结果(list、uniqueResult、分页)6,方法链
// 准备数据@Testpublic void testSave() throws Exception {Session session = sessionFactory.openSession();Transaction tx = null;try {tx = session.beginTransaction();// ------------------------------------// 保存一些部门for (int x = 1; x <= 10; x++) {Department department = new Department();department.setName("开发部_" + x);// 保存session.save(department);}// 保存一些员工for (int x = 1; x <= 20; x++) {Employee employee = new Employee();employee.setName("李xx_" + x);// 保存session.save(employee);}// ------------------------------------tx.commit();} catch (RuntimeException e) {tx.rollback();throw e;} finally {session.close();}}// 使用HQL查询// HQL:Hibernate Query Language// 特点// >> 1,与SQL相似,SQL中的语法基本上都可以直接使用。// >> 2,SQL查询的是表和表中的列,HQL查询的是对象与对象中的属性// >> 3,HQL的关键字不区分大小写,类名与属性名区分大小写的。// >> 4,SELECT省略@Testpublic void testHql() throws Exception {Session session = sessionFactory.openSession();Transaction tx = null;try {tx = session.beginTransaction();// ------------------------------------String hql = null;//// 1,简单查询// hql = "from Employee";// hql = "from Employee as e";// 使用别名// hql = "from Employee e";// 使用别名,as关键字可以省略// 2,带上过滤条件的(可以使用别名):Where// hql = "from Employee e where id<10";// hql = "from Employee e where e.id<10 and e.id>5";// 3,带上排序条件的:Orace by// hql = "from Employee e where e.id<10 order by e.name";// hql = "from Employee e where e.id<10 order by e.name desc";// hql = "from Employee e where e.id<10 order by e.name desc,id asc";//// 4,指定select子句(不可以使用select *)// hql = "select e from Employee e";// 相当于"from Employee e"// hql = "select e.name from Employee e";// 只查询一个指定的列,返回的集合的元素类型就是这个属性的类型// hql = "select e.id,e.name from Employee e";// 只查询多个指定的列,返回的集合的元素类型是Object数组// >> 可以使用new语法,指定把查询出的部分属性封装到对象中// hql = "select new Employee(e.id,e.name) from Employee e";// 只查询多个指定的列,返回的集合的元素类型是Object数组// 5,执行查询,获得结果(list、uniqueResult、分页)// Query query = session.createQuery("from Employee e where e.id=300");// query.setFirstResult(0);// query.setMaxResults(10);// List<Object> list = query.list();// 查询的结果是一个List集合// System.out.println(list.get(0));// Employee employee = (Employee) query.uniqueResult();// 查询的结果是唯一的一个结果,当结果有多个,就会抛异常。// System.out.println(employee);// 6,方法链List<Object> list = session.createQuery(//"from Employee e")//.setFirstResult(0)//.setMaxResults(10)//.list();// ------------------------------------// // ----- 执行查询// List<Object> list = session.createQuery(hql).list();// ----- 显示结果for (Object obj : list) {if (obj.getClass().isArray()) {// 是数组System.out.println(Arrays.toString((Object[]) obj));} else {System.out.println(obj);}}tx.commit();} catch (RuntimeException e) {tx.rollback();throw e;} finally {session.close();}}
0 0
- Hibernate_查询_多种查询方式介绍、HQL详解(一)
- Hibernate_查询_HQL详解(三)_命名的查询、更新与删除的HQL语法
- Hibernate_查询_HQL详解(二)_聚集函数、分组、连接查询、查询时使用参数的HQL语法
- HQL多种查询方法
- Hibernate_查询_QueryByCriteria的方式
- hibernate_三种查询方式
- 细谈Hibernate(十五)HQL与QBC查询方式详解
- Hibernate(十五)HQL与QBC查询方式详解
- hql各种方式查询
- HQL 查询方式
- HQL的查询方式
- HQL有关查询详解
- HQL有关查询详解
- hibernate多种方式查询
- lucene多种查询方式
- 在spring中(getHibernateTemplate())HQL常用查询方式介绍
- HQL数据查询基础(一)
- Hibernate查询语言:HQL 详解(转载)
- ZOJ 1438
- 台湾大学林轩田机器学习基石课程学习笔记9 -- Linear Regression
- Leetcode -- 38. Count and Say
- 尺取法 +POJ 3061
- Android N Graphics之BitmapFactory
- Hibernate_查询_多种查询方式介绍、HQL详解(一)
- Shader Learing(Transparent Shader篇)
- 浅解js中的defaultValue
- 个人网站开发(零):简单介绍
- 操作DOM
- InfoGAN介绍
- window2008 r2 中文语言包
- RocketMQ源码解析:Message拉取&消费(下)
- 算法细节系列(15):Valid Parentheses系列