hibernate中的hql带有参数的参数语句以及二级缓存

hql带有参数的参数语句直接写到test方法里面

package com.hp.dao;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;

import com.hp.bean.Cat;
import com.hp.dbconn.HibernateConn;

public class CSDao {

/**
*
* hql带有参数的参数语句
*
*/
Session session = HibernateConn.getSession();
Transaction tr = session.beginTransaction();
@Test
public void getWhere(){
String hql="select c from Cat c where c.pinzhong is not null";
List<Cat> c = session.createQuery(hql).list();
for(Cat cat:c ){
System.out.println(cat.getId()+cat.getName()+cat.getAge()
+cat.getPinzhong()+cat.getPrice());
}
}

@Test
public void getWhere1(){
String hql="select c from Cat c where c.age in (1,2,3)";
List<Cat> c = session.createQuery(hql).list();
for(Cat cat:c ){
System.out.println(cat.getId()+cat.getName()+cat.getAge()
+cat.getPinzhong()+cat.getPrice());
}

}
@Test
public void getWhere2(){
String hql="select c from Cat c where c.age between 1 and 3";
List<Cat> c = session.createQuery(hql).list();
for(Cat cat:c ){
System.out.println(cat.getId()+cat.getName()+cat.getAge()
+cat.getPinzhong()+cat.getPrice());
}

}
@Test
public void getWhere3(){
String hql="select c from Cat c where c.pinzhong like '%加菲%'";
List<Cat> c = session.createQuery(hql).list();
for(Cat cat:c ){
System.out.println(cat.getId()+cat.getName()+cat.getAge()
+cat.getPinzhong()+cat.getPrice());
}

}
@Test
public void getWhere4(){
String hql="select c from Cat c where c.pinzhong like '%加菲%' or c.age>3";
List<Cat> c = session.createQuery(hql).list();
for(Cat cat:c ){
System.out.println(cat.getId()+cat.getName()+cat.getAge()
+cat.getPinzhong()+cat.getPrice());
}

}
@Test
public void getWhere5(){
String hql="select c from Cat c where c.pinzhong is not empty";
List<Cat> c = session.createQuery(hql).list();
for(Cat cat:c ){
System.out.println(cat.getId()+cat.getName()+cat.getAge()
+cat.getPinzhong()+cat.getPrice());
}

}
@Test
public void getWhere6(){
String hql="select c from Cat c where c.price*5<60";
List<Cat> c = session.createQuery(hql).list();
for(Cat cat:c ){
System.out.println(cat.getId()+cat.getName()+cat.getAge()
+cat.getPinzhong()+cat.getPrice());
}

}
@Test
public void getWhere7(){
String hql="select c from Cat c where c.price>40 order by c.price desc";
List<Cat> c = session.createQuery(hql).list();
for(Cat cat:c ){
System.out.println(cat.getId()+cat.getName()+cat.getAge()
+cat.getPinzhong()+cat.getPrice());
}

}
@Test
public void getWhere8(){
String hql="select c.pinzhong from Cat c where c.price>60 group by c.pinzhong order by c.price desc";
List<Object> c = session.createQuery(hql).list();
for(Object cat:c ){
System.out.println(cat);
}

}


}

2级缓存照样用test方法,代码如下:

package com.hp.dao;

import java.util.Iterator;
import java.util.List;

import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;

import com.hp.bean.Cat;
import com.hp.dbconn.HibernateConn;

 

public class ErjihuancunDao {

Session session = HibernateConn.getSession();
Transaction tr = session.beginTransaction();


@Test
public void getGat(){
Cat cat =(Cat)session.get(Cat.class, 1);
System.out.println(cat.getName());
Cat cat2 =(Cat)session.get(Cat.class, 1);
System.out.println(cat2.getName());
}
@Test
public void getload(){
Cat cat =(Cat)session.load(Cat.class, 1);
System.out.println(cat.getName());
Cat cat2 =(Cat)session.load(Cat.class, 1);
System.out.println(cat2.getName());
}
@Test
public void getload1(){
//两个session 都发出load语句去查同一个数据
Cat cat =(Cat)session.load(Cat.class, 1);
System.out.println(cat.getName());
Session session2 = HibernateConn.getSession();
Cat cat2 =(Cat) session2.load(Cat.class, 1);
System.out.println(cat2.getName());
}
@Test
public void getLoad2(){
//同一个session先保存后查询
Cat cat = new Cat(8, "公猫", "花蛤u", "测试猫", 1, 12);
session.save(cat);

Cat cat1=(Cat)session.load(Cat.class, 1);
System.out.println(cat.getName());

}
@Test
public void getHql(){
//hql语句是否支持一级缓存
String hql="from Cat";
List<Cat> l = session.createQuery(hql).list();
for(Cat cat:l){
System.out.println(cat.getName());
}
Iterator<Cat> c = session.createQuery(hql).iterate();
while(c.hasNext()){
System.out.println(c.next().getName());
}
}
@Test
public void TestCache(){
//测试二级缓存是否配置成功
Cat c =(Cat) session.get(Cat.class, 1);
System.out.println(c.getName());
session.clear();
session.close();
Session session2 = HibernateConn.getSession();
Cat c1 = (Cat)session2.get(Cat.class, 1);
System.out.println(c1.getName());


}



}

posted @ 2016-11-21 15:40  倾世【天意】  阅读(225)  评论(0编辑  收藏  举报