-
逻辑运算符 1.and(逻辑与)、or(逻辑或) 2.not(逻辑非) String hql="from Commodity c where c.price between 100 and 4000 and c.category like '%电脑%'"; String hql1="from Commodity c where c.price between 100 and 4000 or c.category like '%电脑%'";查看全部
-
字符串模式匹配: 1.like 关键字 2.通配符:% 匹配任意个字符,_ 匹配一个字符查看全部
-
范围运算 1.[not] in (列表) 【列表:具体值or子查询】 属性值存在就为true,反之为false 例子:String sql = "from Customer c where c.age in(20,40)"; 返回:即返回年龄为20和40的对象。 2.[not] between 值1 and 值2 属性值在值1和值2之间就返回true, 属性值在两者之外就返回false 例子3:String sql = "from Customer c where c.age between 20 and 40"; 返回:返回年龄为在20 - 40之间的对象。查看全部
-
比较运算符 HQL中的x=null会被解析为SQL中的x is null、x<>null会被解析为SQL中的x is not null查看全部
-
限制—where子句 1.比较运算 2.范围运算 3.字符串模式匹配 4.逻辑运算 5.集合运算 6.在HQL中使用+、-、*、/运算符 7.查询单个对象(uniqueResult方法)查看全部
-
//distinct的使用 select distinct s.star from Seller s 使用distinct去除s.star中的重复元素查看全部
-
增加自定义构造器,一定要补充默认构造器,否则hql=" from classname" 会出错,因为,在Hibernate没有指定的查询的放回集合时候,Hibernate会自动去找默认构造器查看全部
-
Query执行查询查看全部
-
以自定义类型返回数据 1.先创建自定义构造器 例如 public Sellers(String name,String address){ this.name=name; this.address=address; } 2.通过自定义类型返回查询结果 String hql="select new Seller(s.name,s.tel,s.address)from Seller s"; Query query=session.createQuery(hql); List<Seller> lists=query.list(); for (Seller seller : lists) { System.out.println("-----------------------------"); System.out.println("name"+seller.getName()); System.out.println("tel"+seller.getTel()); System.out.println("address"+seller.getAddress()); }查看全部
-
Query实例的创建查看全部
-
以map形式返回属性 * 以new map(s.name,s.tel,s.address) from 持久化的实体类; * key值为索引值,为字符串类型,"0","1"等; * 若在map中使用了别名:(s.name as n,s.tel as t,s.address as a) 就可以使用map.get(别名)。这是as关键字是必须的。查看全部
-
HQL语句形式查看全部
-
选择-select子句,作用:指定只需要的查询信息,提高程序的运行效率 1.以Object[]形式返回选择的属性: 注意:hql的select查询语句中,如果指定了多个查询字段,则返回的是一个Object[]数组,然而如果只指定了一个查询字段,则返回的是一个Object对象。 String hql = "select s.name,s.tel from Seller s"; Query query = session.createQuery(hql); List<Object[]> sellers = query.list(); for(Object[] objs:sellers){ System.out.println("name:"+objs[0]); System.out.println("tel:"+objs[1]); }(如果是单个查询字段的话就只需要把上面的Object[]中的[]去掉,打印输出时不需要指明下标) 2.以List形式返回选择的属性 String hql = "select new list(s.name,s.tel,s.address) from Seller s"; ... List<List>lists=query.getResultList(); 3.以map形式返回选择的属性 注意:key为索引值,是字符串类型(map.get("0")),使用Map集合时考虑使用别名获取属性信息 String hql = "select new map(s.name,s.tel,s.address) from Seller s"; 4.以自定义类型返回选择的属性 (1)持久化类中定义对应的构造器 (2)select子句中调用定义的构造器 注意:默认构造器是需要的,因为,在Hibernate没有指定的查询的放回集合时候,Hibernate会自动去找默认构造器,如果不存在,则会出现异常 String hql = "select new Seller(s.name,s.tel,s.address) from Seller s"; 5.获取独特的结果-distinct关键字 distinct关键字 消除查询过程中重复的元素 String hql = "select distinct s.sex from Seller s";查看全部
-
HQL的定义查看全部
-
hql中查询一个字段 返回的是List<Object>对象,查询多个字段返回的是List<Object[]>,查询所有字段返回的是List<实体类>对象,建议多使用别名来区分不同表中的相同字段 String hql="select s.name,s.tel,s.address,s.star from Seller s "; Query query=session.createQuery(hql); List<Object[]> list=query.list(); for (Object[] objects : list) { System.out.println(" name : "+objects[0]); System.out.println(" tel : "+objects[1]); System.out.println(" address : "+objects[2]); System.out.println(" star : "+objects[3]); System.out.println(""); }查看全部
举报
0/150
提交
取消