扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
本篇内容介绍了“怎么用SimpleFramework框架实现数据访问”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
10年积累的网站设计、成都做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站后付款的网站建设流程,更有零陵免费网站建设让你可以放心的选择与我们合作。
Simple数据访问层基于Spring JDBC。
Simple数据访问层的核心概念为“实体管理器”,所有对数据的访问都是通过不同的“实体管理器”产生的,这使得Simple对数据的访问更加简单、一致、也更为安全。
Simple提供了三种“实体管理器”,分别为:
表实体管理器
具有缓存(或分布式缓存)的表实体管理器
查询实体管理器
表实体管理器
表实体管理器提供了对单张物理表的基本操作(select,insert,update、delete),可以通过如下方式获取表实体管理器:
ITableEntityManager tem = DataObjectManagerFactory.getTableEntityManager(dataSource, new Table("simple_test", "id"));
下面演示一些通过ITableEntityManager操作表数据的例子:
查询id等于1的单行记录
Map data = tem.queryForMap(new UniqueValue(1)); 或则 TestBean bean = tem.queryForObject(new UniqueValue(1), TestBean.class);
查询id大于1的多行记录
IQueryEntitySet
插入id等于2的记录
Map data2 = new HashMap(); data2.put("id", 2); data2.put("f1", "value1"); data2.put("f2", true); tem.insert(data2); 或则 TestBean bean2 = new TestBean(); 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(new ExpressionValue("id=2"));
操作多个物理表
在非事务环境下,操作多张表只需定义不同的表实体管理器:
TestBean bean = new TestBean(); bean.set… tem.insert(bean); ITableEntityManager tem2 = DataObjectManagerFactory.getTableEntityManager(dataSource, new Table("simple_test2", "id")); Test2Bean bean2 = new Test2Bean(); bean2.set… tem2.insert(bean2); …
在事务环境下,操作多张表需要定义监听器:
tem.insertTransaction (bean, new TableEntityAdapter() { public void afterInsert(final ITableEntityManager manager, final Object object, final SQLValue sqlValue) throws EntityException { … tem2.insert(bean2); } });
具有缓存(或分布式缓存)的表实体管理器
具有缓存(或分布式缓存)的表实体管理器继承自表实体管理器,其用法和表实体管理器一样,区别在于查询的结果对象,一个是从数据库直接创建的,一个是从缓存设备中获取的,Simple默认采用EHCahce来管理缓存。
查询实体管理器
和表实体管理器不同,查询实体管理器是基于SQL的,通过传递SQL语句来获取结果集,并且结果集对象以Map形式存在,可以通过如下方式获取表实体管理器:
IQueryEntityManager qem = DataObjectManagerFactory.getQueryEntityManager(dataSource);
查询指定条件的单行或多行记录
Map data = qem.queryForMap( new SQLValue("select * from table1 t1, table2 t2 where t1.c1=t2.c2 and t2.c3=?", new Object[] {1})); IQueryEntitySet
结果集(IQueryEntitySet)
IQueryEntitySet是一个高效、可靠的结果集,其设计准则:
有状态信息
动态及分页获取
可前后滚动
可定制缓存
下面是访问结果集的示例代码:
TestBean bean; while((bean = qs.next()) != null) { System.out.println(bean.getId()); } qs.move(2); System.out.println(qs.next());
“怎么用SimpleFramework框架实现数据访问”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流