使用dao.Processor管理数据持久化对象

对象|数据

原文

dao.Processor是在多数据库多实体环境下以JAVA对象的数据对象化和持久化的核心类,它的使用方

法总结如下:

一、与Entity绑定;

针对dao.entity对象,可与EJB.entity设置兼容。与entity兼容的典型使用方法是:

Processor pro =ProcessorFactory.getProcessorInstance(ent);

或:

Processor pro  =Processor.getInstance(ent);

或:

processor pro =Procesor.getInstance();

pro.setEntity(entity);  或;pro.setEntity(String ent);

效果一样;

使用的方式是: pro.open();这时侯pro会从entity的设置中通过datasource或ConnectionManager获得指定的数据库连接;

pro.close(),关闭清空所有的数据资源;

二、与DAO接口绑定;

Pro可以绑定一个或者多个DAO对象,这时侯Processor显得象一个服务SPI;但每一个DAO对象只能绑定一个Processor实例。

可以通过find获得dao对象;

DAO dao =pro.findByID(in id)或 pro.findByName(String name)获得相应entity的实例对象,每个实例相当于数据库中的一行记录;

DAO dao =pro.findByValue(String key,String value);//根据给定的条件返回DAO对象;

dao.insert();dao.update();dao.delete()等方法相应通过接口调用pro.insert(DAO dao)等几个同名方法;可以由容器管理这几个方法,保持与数据库的同步持久性。

dao.isExist(),该对象是否存在;

DAO dao =pro.getDao(String sql);//其实是直接用sql获得dao对象;

三、与Query绑定;

dao.Processor的另一个使用方法是与dao.Query对象同步。Query是由dao.xml或其他xml定义的包含sql的查询容器,典型设置如下:

 insert into bbsthread (author,sourceid,views,replys,authorid,pubdate,alias,topic,content,name,oldpath,oldsource) values (${author},${sourceid},${views},${replys},${authorid},${pubdate},${alias},${topic},${content},${name},${oldpath},${oldsource})

Query通过Query.addVarian(name,value),然后使用Query.getSqlStatement()获得完整的sql语句;

Processor.setQuery(Query qry)设入Query;

String msg =pro.execute();//如果执行正常反回空,否则返回错误信息;

或ArrayList alist =pro.executeQuery();这要求在entity有效的情况下返回空或者是该entity的对象查询列(适用于select型的Query);

或Resultset rs =pro.getResultSet(Query qry);四、直接执行Sql;

dao.Processor可以直接执行sql;

对于查询型的语句可以直接通过ResultSet rs =pro.getResultSet(sql);

或者:String msg =pro.doUpdate(sql);直接执行sql执行语句;

通过 ArrayList alist =pro.getResultList(String sql);//使用entity设定的Class类型,要求entity不为空

或ArrayList alist =pro.getResultList(String sql,String sclss);  //DAO接口的class名称;

或ArrayList alist =pro.getResultList(String sql,Class cls);

这几个重叠的方法得到相应的查询结果对象列;

ArrayList alist =pro.getResultList(String[] conditions,String sOrd);//这个方法要求enty已经设好,按给定的更新的conditions条件集或order语句返回排序对象列;

五、扩展的方法:

 ArrayList alist =pro.getStringList(Query qry);//返回的是String型的列;

BatchDelete(int[] ids),BatchResume(int[] ids); BatchClear(int[] ids),几个Batch方法,要求在entity已经设定的基础上批执行指定的id集的所有记录。

六、获取connnection的方法;主要通过ConnectionManager获取数据库连接;

有三个可能的途径;一是通过entity所属的获得需要的连接名;二是通过Query的getConn获得需要的连接名;三是通过setConnection直接获得连接名;

时间: 2024-10-02 03:40:01

使用dao.Processor管理数据持久化对象的相关文章

Java的Spring框架中DAO数据访问对象的使用示例_java

Spring DAO之JDBC  Spring提供的DAO(数据访问对象)支持主要的目的是便于以标准的方式使用不同的数据访问技术, 如JDBC,Hibernate或者JDO等.它不仅可以让你方便地在这些持久化技术间切换, 而且让你在编码的时候不用考虑处理各种技术中特定的异常. 为了便于以一种一致的方式使用各种数据访问技术,如JDBC.JDO和Hibernate, Spring提供了一套抽象DAO类供你扩展.这些抽象类提供了一些方法,通过它们你可以 获得与你当前使用的数据访问技术相关的数据源和其他

Java的MyBatis+Spring框架中使用数据访问对象DAO模式的方法_java

SqlSessionTemplateSqlSessionTemplate是MyBatis-Spring的核心.这个类负责管理MyBatis的SqlSession,调用MyBatis的SQL方法,翻译异常.SqlSessionTemplate是线程安全的,可以被多个DAO所共享使用. 当调用SQL方法时,包含从映射器getMapper()方法返回的方法,SqlSessionTemplate将会保证使用的SqlSession是和当前Spring的事务相关的.此外,它管理session的生命周期,包含

Yii学习总结之数据访问对象 (DAO)

 本文是YII学习总结系列文章的第二篇,主要向我们介绍了数据访问对象(DAO),十分的详细,有需要的小伙伴参考下     Yii提供了强大的数据库编程支持.Yii数据访问对象(DAO)建立在PHP的数据对象(PDO)extension上,使得在一个单一的统一的接口可以访问不同的数据库管理系统(DBMS).使用Yii的DAO开发的应用程序可以很容易地切换使用不同的数据库管理系统,而不需要修改数据访问代码. 数据访问对象(DAO) 对访问存储在不同数据库管理系统(DBMS)中的数据提供了一个通用的A

Yii学习总结之数据访问对象 (DAO)_php实例

Yii提供了强大的数据库编程支持.Yii数据访问对象(DAO)建立在PHP的数据对象(PDO)extension上,使得在一个单一的统一的接口可以访问不同的数据库管理系统(DBMS).使用Yii的DAO开发的应用程序可以很容易地切换使用不同的数据库管理系统,而不需要修改数据访问代码. 数据访问对象(DAO) 对访问存储在不同数据库管理系统(DBMS)中的数据提供了一个通用的API. 因此,在将底层 DBMS 更换为另一个时,无需修改使用了 DAO 访问数据的代码. Yii DAO 基于 PHP

php设计模式 DAO(数据访问对象模式)

复制代码 代码如下: <?php /** * 数据访问对象(Data Access Object) 示例 * * @create_date: 2010-01-04 */ class BaseDAO { var $_db = null; var $_table = null; function BaseDAO($config) { $this->_db = new MysqlDB(); // 这里的不能进行操作 } /** * 获取处理 * * @param array $filter // 过

php设计模式 DAO(数据访问对象模式)_php技巧

复制代码 代码如下: <?php /** * 数据访问对象(Data Access Object) 示例 * * @create_date: 2010-01-04 */ class BaseDAO { var $_db = null; var $_table = null; function BaseDAO($config) { $this->_db = new MysqlDB(); // 这里的不能进行操作 } /** * 获取处理 * * @param array $filter // 过

Spring Web Flow 2中流管理的持久化:事务性Web流的持久化策略

Spring Web Flow 是一种新颖的 Java Web 框架,它扩展了 Spring MVC 技术.使用 Spring Web Flow 的应用开发围绕着定义为 Web 流的用例展开. 将开发工作区根据 Web 流进行组织使开发体验更有意义.更具上下文.此外,Spring Web Flow 对 JPA/Hibernate 持久化的支持也是其最重要的服务器端改进之一. 尽管 SpringSource 和 Spring Web Flow 项目组详细介绍了 Spring Web Flow,但是

Java模式设计之数据访问对象模式

很多的J2EE应用程序需要使用持久性数据(数据库.文件等).不同的程序,持久性存储是各不相同的,并且用来访问这些不同的持久性存储机制的API也有很大的不同.如果应用程序要在不同的持久性存储间迁移,这些访问特定持久存储层的代码将面临重写. 如何解决这个问题?且看"DAO模式" 数据访问对象(Data Acess Object) 模式 一.环境 根据数据源不同,数据访问也不同.根据存储的类型(关系数据库.面向对象数据库.文件等等)和供应商实现不同,持久性存储(比如数据库)的访问差别也很大.

iOS学习之数据持久化详解

前言 持久存储是一种非易失性存储,在重启设备时也不会丢失数据.Cocoa框架提供了几种数据持久化机制: 1)属性列表: 2)对象归档: 3)iOS的嵌入式关系数据库SQLite3: 4)Core Data. 在iOS开发中,持久化数据的方法也并不限于属性列表.对象归档.SQLite3和Core Data.它们只是四种最常用且简单的方法.其实也可以使用传统C语言I/O调用(比如,fopen())读写数据,也可以使用Cocoa的底层文件管理工具.只不过这两种方法都需要写很多代码,并且没有必要这么做.