查詢數(shù)據(jù)-ESQL方式

2018-05-31 09:45 更新

框架中提供了一個專門用于執(zhí)行esql和sql的api類。esql就是sql語句,但是只從where條件關(guān)鍵字開始編寫的后面部分,該api類是

org.myhibernate.core.method.Query , 獲取方式如下

Template<Product> template=new ProxyTemplate(Product.class).getInstance();
		Query<Product> query=template.getQuery();
		try 
		{
			// ???
			
			
		} catch (Exception e) {
			e.printStackTrace();
		}finally
		{
			template.close();
		}


第一組查詢api方法如下

public int query(String esql)  該方法返回esql查詢后返回的結(jié)果數(shù) ,查詢的是所有數(shù)據(jù)的id值,是框架內(nèi)存分頁

public List<T> getResults(int start,int end)  該方法用以對上面查詢的結(jié)果進行分頁獲取


public  List<T> queryAll()  獲取所有結(jié)果

public  List<T> queryAll(String esql,boolean isCache) 獲取所有結(jié)果,并可以傳入esql條件過濾,和指定是否緩存

如下獲取滿足條件的第10到20條記錄示例

Template<Product> template=new ProxyTemplate(Product.class).getInstance();
		Query<Product> query=template.getQuery();
		try 
		{
			int count=query.query("where price>50");
			List<Product> products=query.getResults(10, 20);
		} catch (Exception e) {
			e.printStackTrace();
		}finally
		{
			template.close();
		}


如下獲取滿足條件的所有記錄 示例

Template<Product> template=new ProxyTemplate(Product.class).getInstance();
		Query<Product> query=template.getQuery();
		try 
		{
			List<Product> products= query.queryAll("where price>50", true);
		} catch (Exception e) {
			e.printStackTrace();
		}finally
		{
			template.close();
		}


第二組查詢api方法如下

public List<T> where(String esql,int start,int size)  查詢滿足esql條件的記錄,并且分頁,采用的是數(shù)據(jù)庫分頁

public List<T> where(String esql,Object[] values,int start,int size) 查詢滿足esql 預編譯方式條件的記錄,并且分頁

這兩個方法和getCount() 獲取記錄條數(shù)一起使用

示例如下

Template<Product> template=new ProxyTemplate(Product.class).getInstance();
		Query<Product> query=template.getQuery();
		try 
		{
			List<Product> products=query.where("where price>50", 0, 10);
			int count=query.getCount();
		} catch (Exception e) {
			e.printStackTrace();
		}finally
		{
			template.close();
		}


第三組查詢api

   Query中提供了幾個封裝的查詢方法,以find開頭的,讀者自己測試測試即可







以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號