使用dao.Processor管理数据持久化对象
2008-02-23 10:01:09来源:互联网 阅读 ()
原文
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直接获得连接名;
上一篇: Annotations中文翻译
下一篇: 关于Java的一些 工具,类库,框架......
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash