分享
 
 
 

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

王朝java/jsp·作者佚名  2006-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直接获得连接名;

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有