您好,欢迎访问三七文档
GBU客户化开发中心伙伴培训课程NC数据库操作何胜利2007-03-25内部经营人员经营成果经营客户经营找出发展机edesafaaaaadsdfdffdd会并进行初步筛选NCV5以前版本的典型代码1.定义sql语句:StringstrSql=“select…….From…..where…..”2.定义连接:con=getConnection()3.定义stmt:stmt=con.prepareStatement(strSql)4.给条件赋值:stmt.setString(1,key)5.执行查询:ResultSetrs=stmt.executeQuery()6.处理结果集:while(rs.next()){rs.getString(1);rs.getDecimal(2);………..}7.处理异常关闭连接:stmt.close();con.close();内部经营人员经营成果经营客户经营找出发展机会并进行初步筛选项目经营弊端:嵌入大量SQL语句,冗余是不可避免的一次又一次地编写相同的普通代码,工作效率低代码难以维护,表结构一点小改动就难以承受数据库访问异常不统一内部经营人员经营成果经营客户经营找出发展机会并进行初步筛选项目经营V5新的数据库访问框架JDBCFrameWork1.灵活2.简洁3.高的容错性4.异常的统一处理DataBaseJDBCAPIJDBCFrameworkDataAccessObjectBusinessService业务委托接口,提供EJB封装数据访问对象,组织数据访问逻辑提供统一的数据操作访问,简化数据访问操作内部经营人员经营成果经营客户经营找出发展机会并进行初步筛选项目经营•核心类与工具类•PersistenceManager–管理连接会话的生命周期,并提供了对单表VO操作的常用实现•JdbcSession–对JDBC的API封装和简化•SQLParameter–封装执行SQL的参数•ResultSetProcessor–结果集处理回调接口,封装结果集处理•DbException–封装不同数据库的异常,和统一处理不同数据库的ErrorCodeBaseDAO/IUAPQueryBS/IVOPersistence–管理连接会话的生命周期,提供了对单表VO操作的常用实现内部经营人员经营成果经营客户经营找出发展机会并进行初步筛选项目经营1.前台数据访问使用IVOPersistence服务组件,进行增删改操作;使用IUAPQueryBS服务组件,进行查询操作。IUAPQueryBSiUAPQueryBS=(IUAPQueryBS)NCLocator.getInstance().lookup(IUAPQueryBS.class.getName());iUAPQueryBS.executeQuery()2.后台数据访问使用BaseDAO工具类,进行单表对象的CRUD操作;使用PersistenceManager,进行单表对象的CRUD操作newBaseDAO().insertObject()内部经营人员经营成果经营客户经营找出发展机会并进行初步筛选项目经营JdbcSession的创建PersistenceManagersessionManager=PersistenceManager.getInstance();try{JdbcSessionsession=sessionManager.getJdbcSession();//数据库访问操作session.insert(…);session.update(…);session.query(…);}catch(DbExceptione){}finally{sessionManager.release();//需要关闭会话}内部经营人员经营成果经营客户经营找出发展机会并进行初步筛选项目经营JdbcSession基本操作1.无参查询Stringsql=select*frombd_deptdoc;//构造查询语句Listlist=(List)session.executeQuery(sql,newArrayListProcessor());2.有参查询Stringsql=select*frombd_deptdocwheredept_code=?;SQLParameterparam=newSQLParameter();//构造参数对象param.addParam(“aaa”);//添加参数Listlist=(List)session.executeQuery(sql,param,newArrayListProcessor());内部经营人员经营成果经营客户经营找出发展机会并进行初步筛选项目经营JdbcSession基本操作3.无参更新Stringsql=updatebd_deptdocsetdept_code=‘aaa’wheredept_code=‘bbb’;session.executeUpdate(sql);4.有参更新Stringsql=updatebd_deptdocsetdept_code=‘aaa’wheredept_code=?”;SQLParameterparam=newSQLParameter();//构造参数对象param.addParam(“bbb”);//添加参数session.executeUpdate(sql,param);内部经营人员经营成果经营客户经营找出发展机会并进行初步筛选项目经营JdbcSession基本操作5.无参批量更新Stringsql=updatebd_deptdocsetdept_code=‘aaa’wheredept_code=‘bbb’;session.addBatch(sql);//添加需要执行的同构SQLintrows=session.executeBatch();//执行6.有参批量更新Stringsql=updatebd_deptdocsetdept_code=‘aaa’wheredept_code=?”;SQLParameterparam=newSQLParameter();//构造参数对象param.addParam(“bbb”);//添加参数session.addBatch(sql,param);//添加需要执行的同构SQLintrows=session.executeBatch();//执行内部经营人员经营成果经营客户经营找出发展机会并进行初步筛选项目经营特殊参数1.Null参数param.addNullParam(java.sql.Types.INTEGER);2.Blob参数param.addBlobParam(newObject());3.Clob参数param.addClobParam(newString());内部经营人员经营成果经营客户经营找出发展机会并进行初步筛选项目经营结果集合的处理内部经营人员经营成果经营客户经营找出发展机会并进行初步筛选项目经营ArrayProcessor数组处理器,返回一个对象数组,结果集中只有一行数据,其中结果集中每一列对应数组的一个元素ArrayListProcessor数组集合处理器,返回一个ArrayList集合,集合中的每一个元素是一个数组,每个数组对应结果集中的一行数据,其中结果集中每一列对应数组的一个元素MapProcessorHashMap处理器,返回一个HashMap,结果集中只有一行数据,其中结果集合中每一列的列名和列值对应HashMap的一个关键字和相应的值MapListProcessorHashMap集合处理器,返回一个ArrayList集合,集合中的每一个元素是一个HashMap,每个HashMap对应结果集中的一行数据,其中结果集合中每一列的列名和列值对应HashMap的一个关键字和相应的值内部经营人员经营成果经营客户经营找出发展机会并进行初步筛选项目经营BeanProcessor值对象处理器,返回一个JavaBean,结果集中只有一行数据,该处理器能自动把结果集中的值按列的名称映射到javaBean中,如结果集中有名称为”name”的字段,那么只要该java对象中有getName()方法就能把结果集合中”name”对应的值映射到对象中BeanListProcessor值对象集合处理器,返回一个ArrayList集合,集合中的每一个元素是一个javaBean,每个javaBean对应结果集合中一行数据,其中每个JavaBean中的数据映射关系和BeanProcess同理ColumnProcessor列值处理器,返回一个Java对象,结果集中只有一行数据,该对象对应与结果集中某一列的值,该处理器通过结果集列的序号或名称来确定列内部经营人员经营成果经营客户经营找出发展机会并进行初步筛选项目经营自定义的结果集处理器publicclassCustomProcessorextendsBaseProcessor{publicObjectprocessResultSet(ResultSetrs)throwsSQLException{…自定义实现…}}内部经营人员经营成果经营客户经营找出发展机会并进行初步筛选项目经营一个练习:(30分钟)建表脚本:createtabledemo_hello(pk_hellochar(20),vnamevarchar2(30),inumint)实现前后台的对该表的insert和select操作谢谢大家!
本文标题:NC5数据库操作
链接地址:https://www.777doc.com/doc-5059381 .html