|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
诸如RMI,EJB等一些技术并不是你说的那么复杂,而是它们把一些复杂的工具封装成不复杂的工具了,理解这些工具是需要些时间。我问你,.net里有这些工具吗?要简单多少?。对象|数据
原文
dao.Processor是在多半据库多实体情况下以JAVA对象的数据对象化和耐久化的中心类,它的利用方
法总结以下:
1、与Entity绑定;
针对dao.entity对象,可与EJB.entity设置兼容。与entity兼容的典范利用办法是:
Processorpro=ProcessorFactory.getProcessorInstance(ent);
或:
Processorpro=Processor.getInstance(ent);
或:
processorpro=Procesor.getInstance();
pro.setEntity(entity);或;pro.setEntity(Stringent);
效果一样;
利用的体例是:pro.open();这时候侯pro会从entity的设置中经由过程datasource或ConnectionManager取得指定的数据库毗连;
pro.close(),封闭清空一切的数据资本;
2、与DAO接口绑定;
Pro能够绑定一个大概多个DAO对象,这时候侯Processor显得象一个服务SPI;但每个DAO对象只能绑定一个Processor实例。
能够经由过程find取得dao对象;
DAOdao=pro.findByID(inid)或pro.findByName(Stringname)取得响应entity的实例对象,每一个实例相称于数据库中的一行纪录;
DAOdao=pro.findByValue(Stringkey,Stringvalue);//依据给定的前提前往DAO对象;
dao.insert();dao.update();dao.delete()等办法响应经由过程接口挪用pro.insert(DAOdao)等几个同名办法;能够由容器办理这几个办法,坚持与数据库的同步耐久性。
dao.isExist(),该对象是不是存在;
DAOdao=pro.getDao(Stringsql);//实际上是间接用sql取得dao对象;
3、与Query绑定;
dao.Processor的另外一个利用办法是与dao.Query对象同步。Query是由dao.xml或其他xml界说的包括sql的查询容器,典范设置以下:
insertintobbsthread(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(Queryqry)设进Query;
Stringmsg=pro.execute();//假如实行一般反回空,不然前往毛病信息;
或ArrayListalist=pro.executeQuery();这请求在entity无效的情形下前往空大概是该entity的对象查询列(合用于select型的Query);
或Resultsetrs=pro.getResultSet(Queryqry);4、间接实行Sql;
dao.Processor能够间接实行sql;
关于查询型的语句能够间接经由过程ResultSetrs=pro.getResultSet(sql);
大概:Stringmsg=pro.doUpdate(sql);间接实行sql实行语句;
经由过程ArrayListalist=pro.getResultList(Stringsql);//利用entity设定的Class范例,请求entity不为空
或ArrayListalist=pro.getResultList(Stringsql,Stringsclss);//DAO接口的class称号;
或ArrayListalist=pro.getResultList(Stringsql,Classcls);
这几个堆叠的办法失掉响应的查询了局对象列;
ArrayListalist=pro.getResultList(String[]conditions,StringsOrd);//这个办法请求enty已设好,按给定的更新的conditions前提集或order语句前往排序对象列;
5、扩大的办法:
ArrayListalist=pro.getStringList(Queryqry);//前往的是String型的列;
BatchDelete(int[]ids),BatchResume(int[]ids);BatchClear(int[]ids),几个Batch办法,请求在entity已设定的基本上批实行指定的id集的一切纪录。
6、猎取connnection的办法;次要经由过程ConnectionManager猎取数据库毗连;
有三个大概的路子;一是经由过程entity所属的取得必要的毗连名;二是经由过程Query的getConn取得必要的毗连名;三是经由过程setConnection间接取得毗连名;
诸如RMI,EJB等一些技术并不是你说的那么复杂,而是它们把一些复杂的工具封装成不复杂的工具了,理解这些工具是需要些时间。我问你,.net里有这些工具吗?要简单多少?。 |
|