快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

使用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直接获得连接名;




返回类别: 教程
上一教程: Beginner: Using Servlets to display, insert and update records in database.(3)
下一教程: BDK1.1启动时抛错问题。

您可以阅读与"使用dao.Processor治理数据持久化对象"相关的教程:
· 使用hibernate扩展工具hbm2java根据配置文件生成持久化对象类(2.1.2)
· 使用JDBC创建数据库对象
· 使用JAVA DATA OBJECT(JDO)存放持久性数据
· JAVA中使用JCOM操作OFFICE对象
· 利用JAVABEAN轻松实现对数据库的连接、查询以及增删改--使用范例
    微笑服务 优质保证 索取样品