@Test
public void testQuery14(){
//模糊查询
String hql="from Person p where p.name like :mz";
Query query=session.createQuery(hql);
//查找名字以字符‘2’结束的记录
query.setString("mz", "%_2");
List<Person> persons=query.list();
for (Person person : persons) {
System.out.println(person);
}
}
@Test
public void testQuery13(){
String hql="from Person p where p.id in(:ids)";
Query query=session.createQuery(hql);
// query.setParameterList("ids", new Object[]{3,6,9});
List<Integer> list=new ArrayList<Integer>();
list.add(2);
list.add(5);
list.add(8);
query.setParameterList("ids", list);
List<Person> persons=query.list();
for (Person person : persons) {
System.out.println(person);
}
}
@Test
public void testQuery12(){
//使用范围函数in
String hql="from Person p where p.id in(1,4,7)";
Query query=session.createQuery(hql);
List<Person> persons=query.list();
for (Person person : persons) {
System.out.println(person);
}
}
@Test
public void testQuery11(){
//hibernate 可以为占位符指定名称
String hql="from Person p where p.name=:mz";
Query query=session.createQuery(hql);
//与jdbc不同的是JDBC占位符从1开始,hibernate占位符的位置从0开始
query.setString("mz", "lee4");
List<Person> persons=query.list();
for (Person person : persons) {
System.out.println(person);
}
}
@Test
public void testQuery10(){
//hibernate 可以为占位符指定位置
String hql="from Person p where p.name=?3 and p.id=?8";
Query query=session.createQuery(hql);
//与jdbc不同的是JDBC占位符从1开始,hibernate占位符的位置从0开始
query.setString("3", "lee3");
query.setInteger("8", 4);
List<Person> persons=query.list();
for (Person person : persons) {
System.out.println(person);
}
}
@Test
public void testQuery9(){
String hql="from Person p where p.name=?";
Query query=session.createQuery(hql);
//与jdbc不同的是JDBC占位符从1开始,hibernate占位符的位置从0开始
query.setString(0, "lee3");
List<Person> persons=query.list();
for (Person person : persons) {
System.out.println(person);
}
}
@Test
public void testQuery8(){
// String hql="from Person where id<5";
String hql="from Person p where p.name='lee2'";
Query query=session.createQuery(hql);
List<Person> persons=query.list();
for (Person person : persons) {
System.out.println(person);
}
}
@Test
public void testQuery7(){
String hql="from Person";
Query query=session.createQuery(hql);
query.setFirstResult(0); //设置起始查询位置
query.setMaxResults(10); //设置返回结果的条数
List<Person> persons=query.list();
for (Person person : persons) {
System.out.println(person);
}
}
@Test
public void testQuery6(){
String hql="from Person";
Query query=session.createQuery(hql);
//当查询到的结果只有一条时,可以用uniqueResult()得到
Person person=(Person) query.uniqueResult();
System.out.println(person);
}
@Test
public void testQuery5(){
String hql="from Person";
Query query=session.createQuery(hql);
//获得查询结果中的第一条记录
Person person=(Person) query.list().get(0);
System.out.println(person);
}
@Test
public void testQuery4(){
//把查询结果封装到一个对象中,此对象需要提供相应的构造器
String hql="select new Person(p.id,p.name) from Person p";
Query query=session.createQuery(hql);
List<Object[]> objs=query.list();
List<Person> persons=query.list();
for (Person person : persons) {
System.out.println(person);
}
}
@Test
public void testQuery3(){
String hql="select p.id,p.name from Person p";
Query query=session.createQuery(hql);
//如果查询的是多个属性list集合接收的数据类型为Object[]
List<Object[]> objs=query.list();
for (Object[] obj : objs) {
System.out.println(obj[0]+","+obj[1]);
}
}
@Test
public void testQuery2(){
String hql="select p.name from Person p";
Query query=session.createQuery(hql);
//如果查询的是单个属性list集合接收的数据类型为此属性的数据类型
List<String> names=query.list();
for (String name : names) {
System.out.println(name);
}
}
@Test
public void testQuery1(){
String hql="from Person";
Query query=session.createQuery(hql);
List<Person> persons=query.list();
for (Person person : persons) {
System.out.println(person);
}
}
hibernate基本的HQL查询demo
最新推荐文章于 2020-05-23 17:10:21 发布