怎么用SimpleFramework框架实现数据访问(simpleframework,编程语言)

时间:2024-04-29 13:00:29 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

Simple数据访问层基于Spring JDBC。

Simple数据访问层的核心概念为“实体管理器”,所有对数据的访问都是通过不同的“实体管理器”产生的,这使得Simple对数据的访问更加简单、一致、也更为安全。

怎么用SimpleFramework框架实现数据访问

Simple提供了三种“实体管理器”,分别为:

表实体管理器

具有缓存(或分布式缓存)的表实体管理器

查询实体管理器

表实体管理器

表实体管理器提供了对单张物理表的基本操作(select,insert,update、delete),可以通过如下方式获取表实体管理器:

ITableEntityManagertem=DataObjectManagerFactory.getTableEntityManager(dataSource,newTable("simple_test","id"));

下面演示一些通过ITableEntityManager操作表数据的例子:

查询id等于1的单行记录

Mapdata=tem.queryForMap(newUniqueValue(1));或则TestBeanbean=tem.queryForObject(newUniqueValue(1),TestBean.class);

查询id大于1的多行记录

IQueryEntitySet<Map>qs=tem.query(newExpressionValue("id>1"));或则IQueryEntitySet<TestBean>qs2=tem.query(newExpressionValue("id>1",TestBean.class));

插入id等于2的记录

Mapdata2=newHashMap();data2.put("id",2);data2.put("f1","value1");data2.put("f2",true);tem.insert(data2);或则TestBeanbean2=newTestBean();bean2.setId(2);bean2.setF1("value1");bean2.setF2(true);tem.insert(bean2);

更新id等于2的记录

data2.put("f1","value1_update");tem.update(data2);或则bean2.setF1("value1_update");tem.update(bean2);

删除id等于2的记录

tem.delete(newExpressionValue("id=2"));

操作多个物理表

在非事务环境下,操作多张表只需定义不同的表实体管理器:

TestBeanbean=newTestBean();bean.set&hellip;tem.insert(bean);ITableEntityManagertem2=DataObjectManagerFactory.getTableEntityManager(dataSource,newTable("simple_test2","id"));Test2Beanbean2=newTest2Bean();bean2.set&hellip;tem2.insert(bean2);&hellip;

在事务环境下,操作多张表需要定义监听器:

tem.insertTransaction(bean,newTableEntityAdapter(){publicvoidafterInsert(finalITableEntityManagermanager,finalObjectobject,finalSQLValuesqlValue)throwsEntityException{&hellip;tem2.insert(bean2);}});

具有缓存(或分布式缓存)的表实体管理器

具有缓存(或分布式缓存)的表实体管理器继承自表实体管理器,其用法和表实体管理器一样,区别在于查询的结果对象,一个是从数据库直接创建的,一个是从缓存设备中获取的,Simple默认采用EHCahce来管理缓存。

查询实体管理器

和表实体管理器不同,查询实体管理器是基于SQL的,通过传递SQL语句来获取结果集,并且结果集对象以Map形式存在,可以通过如下方式获取表实体管理器:

IQueryEntityManagerqem=DataObjectManagerFactory.getQueryEntityManager(dataSource);

查询指定条件的单行或多行记录

Mapdata=qem.queryForMap(newSQLValue("select*fromtable1t1,table2t2wheret1.c1=t2.c2andt2.c3=?",newObject[]{1}));IQueryEntitySet<Map>qs=qem.query(newSQLValue("select*fromtable1t1,table2t2wheret1.c1=t2.c2"));

结果集(IQueryEntitySet)

IQueryEntitySet是一个高效、可靠的结果集,其设计准则:

有状态信息

动态及分页获取

可前后滚动

可定制缓存

下面是访问结果集的示例代码:

TestBeanbean;while((bean=qs.next())!=null){System.out.println(bean.getId());}qs.move(2);System.out.println(qs.next());
 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:怎么用SimpleFramework框架实现数据访问的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:JAVA静态载入的方式有哪些下一篇:

3 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18