自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SimpleFramework框架高級(jí)特性之?dāng)?shù)據(jù)訪問

開發(fā) 后端
本篇文章主要介紹SimpleFramework框架高級(jí)特性之?dāng)?shù)據(jù)訪問,請(qǐng)大家參考。

Simple數(shù)據(jù)訪問層基于Spring JDBC。

Simple數(shù)據(jù)訪問層的核心概念為“實(shí)體管理器”,所有對(duì)數(shù)據(jù)的訪問都是通過不同的“實(shí)體管理器”產(chǎn)生的,這使得Simple對(duì)數(shù)據(jù)的訪問更加簡單、一致、也更為安全。

 

 

Simple提供了三種“實(shí)體管理器”,分別為:

表實(shí)體管理器

具有緩存(或分布式緩存)的表實(shí)體管理器

查詢實(shí)體管理器

表實(shí)體管理器

表實(shí)體管理器提供了對(duì)單張物理表的基本操作(select,insert,update、delete),可以通過如下方式獲取表實(shí)體管理器:

 

  1. ITableEntityManager tem =   
  2.     DataObjectManagerFactory.getTableEntityManager(dataSource, new Table("simple_test", "id")); 

 

下面演示一些通過ITableEntityManager操作表數(shù)據(jù)的例子:

查詢id等于1的單行記錄

 

  1. Map data = tem.queryForMap(new UniqueValue(1));  
  2. 或則  
  3. TestBean bean = tem.queryForObject(new UniqueValue(1), TestBean.class);  

 

查詢id大于1的多行記錄

  1. IQueryEntitySet<Map> qs = tem.query(new ExpressionValue("id>1"));  
  2. 或則  
  3. IQueryEntitySet<TestBean> qs2 = tem.query(new ExpressionValue("id>1", TestBean.class));  

 

 

 

插入id等于2的記錄

  1. Map data2 = new HashMap();  
  2. data2.put("id", 2);  
  3. data2.put("f1", "value1");  
  4. data2.put("f2", true);  
  5. tem.insert(data2);   
  6. 或則  
  7. TestBean bean2 = new TestBean();  
  8. bean2.setId(2);  
  9. bean2.setF1("value1");  
  10. bean2.setF2(true);  
  11. tem.insert(bean2);  

 更新id等于2的記錄

  1. data2.put("f1", "value1_update");  
  2. tem.update(data2);  
  3. 或則  
  4. bean2.setF1("value1_update");  
  5. tem.update(bean2);  

刪除id等于2的記錄

 

  1. tem.delete(new ExpressionValue("id=2")); 

操作多個(gè)物理表

在非事務(wù)環(huán)境下,操作多張表只需定義不同的表實(shí)體管理器:

 

  1. TestBean bean = new TestBean();  
  2. bean.set…  
  3. tem.insert(bean);  
  4. ITableEntityManager tem2 =  
  5.     DataObjectManagerFactory.getTableEntityManager(dataSource, new Table("simple_test2", "id"));  
  6. Test2Bean bean2 = new Test2Bean();  
  7. bean2.set…  
  8. tem2.insert(bean2);  
  9. …  

 

在事務(wù)環(huán)境下,操作多張表需要定義監(jiān)聽器:

 

  1. tem.insertTransaction (bean, new TableEntityAdapter() {  
  2.     public void afterInsert(final ITableEntityManager manager,   
  3.                 final Object object, final SQLValue sqlValue) throws EntityException {  
  4.         …  
  5.         tem2.insert(bean2);  
  6.     }  
  7. });  

 

具有緩存(或分布式緩存)的表實(shí)體管理器

具有緩存(或分布式緩存)的表實(shí)體管理器繼承自表實(shí)體管理器,其用法和表實(shí)體管理器一樣,區(qū)別在于查詢的結(jié)果對(duì)象,一個(gè)是從數(shù)據(jù)庫直接創(chuàng)建的,一個(gè)是從緩存設(shè)備中獲取的,Simple默認(rèn)采用EHCahce來管理緩存。

查詢實(shí)體管理器

和表實(shí)體管理器不同,查詢實(shí)體管理器是基于SQL的,通過傳遞SQL語句來獲取結(jié)果集,并且結(jié)果集對(duì)象以Map形式存在,可以通過如下方式獲取表實(shí)體管理器:

 

  1. IQueryEntityManager qem = DataObjectManagerFactory.getQueryEntityManager(dataSource); 

查詢指定條件的單行或多行記錄

 

  1. Map data = qem.queryForMap(  
  2.     new SQLValue("select * from table1 t1, table2 t2 where t1.c1=t2.c2 and t2.c3=?",   
  3.     new Object[] {1}));  
  4.  
  5. IQueryEntitySet<Map> qs = qem.query(  
  6.     new SQLValue("select * from table1 t1, table2 t2 where t1.c1=t2.c2")); 

結(jié)果集(IQueryEntitySet)

IQueryEntitySet是一個(gè)高效、可靠的結(jié)果集,其設(shè)計(jì)準(zhǔn)則:

有狀態(tài)信息

動(dòng)態(tài)及分頁獲取

可前后滾動(dòng)

可定制緩存

下面是訪問結(jié)果集的示例代碼:

 

  1. TestBean bean;  
  2. while((bean = qs.next()) != null) {  
  3.     System.out.println(bean.getId());  
  4. }  
  5. qs.move(2);  
  6. System.out.println(qs.next());  

 

責(zé)任編輯:金賀 來源: SimpleFramework.net
相關(guān)推薦

2011-04-22 10:45:14

SimpleFrame

2011-04-21 10:59:44

SimpleFrameWeb

2011-04-29 10:58:11

SimpleFrame

2011-03-29 14:50:48

自然框架數(shù)據(jù)訪問

2011-04-29 09:33:22

SimpleFrame

2011-04-29 14:30:05

2017-05-26 10:15:39

Java高級(jí)特性反射

2011-04-28 10:45:39

SimpleFrame

2019-07-12 08:49:04

MySQ數(shù)據(jù)庫Redis

2010-05-19 09:09:33

2011-05-20 10:15:06

JDK7

2017-03-27 15:03:44

瀏覽器谷歌G Suite

2012-08-06 16:09:40

Redis數(shù)據(jù)庫

2011-03-03 11:07:57

Spring數(shù)據(jù)庫訪問ORM

2018-07-13 09:20:30

SQLite數(shù)據(jù)庫存儲(chǔ)

2009-09-07 17:46:18

LINQ高級(jí)特性

2021-11-28 18:23:53

Java特性序列化

2011-04-22 10:13:35

SimpleFrame

2011-04-22 09:48:51

SimpleFrame

2011-04-22 10:01:59

SimpleFrame
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)