日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2024/10/12 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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());


}



}

轉載于:https://www.cnblogs.com/lyh-8/p/6085679.html

總結

以上是生活随笔為你收集整理的hibernate中的hql带有参数的参数语句以及二级缓存的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。