`

bboss persistent 实现数据库更新操作

阅读更多

4.5 更新操作代码段
   

4.5.1预编译更新操作
        PreparedDBUtil preDBUtil = new PreparedDBUtil();

       int pk = 0;

       String sqlstr = "update OFFICE_DOCINFO set DOCID=?, GETDOCID=?, " +

       "DOCDATE=?, RECIVEDATE=?, DOCTITLE=?, DOCUNIT=?, DOCURGENT=?, DOCKIND=?, " +

       "DOCCLASS=?, SECRET=?, DOCSUBJECT=?, DOCTYPE=?, DOCNUM=?, DOCOFFICE=?, " +

       "DOCINFO=?, DOCRESULT=?, DOCTRANSACT=?, DOCREMARK=?, DOCMODE=?, WORKLEVEL=?, " +

       "RESERVETERM=?, IDENTITY=?, DOCSUM=?, OLD_NUMBER=?, DOCKIND_ID=?, PROCESSID=?, " +

       "DOCTYPE_ID=?, CLASSID=?,isSend=? where DOCINFO_ID=?";

      

       DocInfo docInfo = (DocInfo)vo;

 

       String sDocId = docInfo.getDocId();

       String sGetDocId = docInfo.getGetDocID();

       Timestamp tsDocDate = (Timestamp) docInfo.getDocDate();

       Timestamp tsReceiveDate = (Timestamp) docInfo.getReciveDate();

       String sDocTitle = docInfo.getDocTitle();

       String sDocUnit = docInfo.getDocUnit();

       int    iDocUrgent = docInfo.getDocUrgent();

       String sDocClass = docInfo.getDocClass();

       String sDocKind = docInfo.getDocKind();

       String sSecret = docInfo.getSecret();

       String sDocSubject = docInfo.getDocSubject();

       String sDocType = docInfo.getDocType();

       String sDocNum = docInfo.getDocNum();

       String sDocOffice = docInfo.getDocOffice();

       String sDocInfo = docInfo.getDocInfo();

       String sDocResult = docInfo.getDocResult();

       String sDocTransact = docInfo.getDocTransact();

       String sDocRemark = docInfo.getDocRemark();

       int    iDocMode = docInfo.getDocMode();

       String sWorkLevel = docInfo.getWorkLevel();

       String sReserveTerm = docInfo.getReserveTerm();

       int    iIdentity = docInfo.getIdentity();

       String   iDocSum = docInfo.getDocSum();

       String sOld_number = docInfo.getOld_number();

       int    iDocKindId = docInfo.getDocKindId();

       //int     iProcessId = docInfo.getProcessId();

       String sProcessId = docInfo.getProcessId();

       int    iDocTypeId = docInfo.getDocTypeId();

       int    iDocClassId = docInfo.getDocClassId();

       int isSend = docInfo.getIsSend();

      

           try {

              preDBUtil.preparedUpdate(sqlstr); //在缺省的数据库上操作

                 //preDBUtil.preparedUpdate(“bspf”,sqlstr);在指定的数据库中,执行sql语句。

              preDBUtil.setString(1,sDocId);

              preDBUtil.setString(2,sGetDocId);

              preDBUtil.setTimestamp(3,tsDocDate);

              preDBUtil.setTimestamp(4,tsReceiveDate);

              preDBUtil.setString(5,sDocTitle);

              preDBUtil.setString(6,sDocUnit);

              preDBUtil.setInt(7,iDocUrgent);

              preDBUtil.setString(8,sDocClass);

              preDBUtil.setString(9,sDocKind);

              preDBUtil.setString(10,sSecret);

              preDBUtil.setString(11,sDocSubject);

              preDBUtil.setString(12,sDocType);

              preDBUtil.setString(13,sDocNum);

              preDBUtil.setString(14,sDocOffice);

              preDBUtil.setString(15,sDocInfo);

              preDBUtil.setString(16,sDocResult);

              preDBUtil.setString(17,sDocTransact);

              preDBUtil.setString(18,sDocRemark);

              preDBUtil.setInt(19,iDocMode);

              preDBUtil.setString(20,sWorkLevel);

              preDBUtil.setString(21,sReserveTerm);

              preDBUtil.setInt(22,iIdentity);

              preDBUtil.setString(23,iDocSum);

              preDBUtil.setString(24,sOld_number);

              preDBUtil.setInt(25,iDocKindId);

              preDBUtil.setString(26,sProcessId);

              preDBUtil.setInt(27,iDocTypeId);

              preDBUtil.setInt(28,iDocClassId);

              preDBUtil.setInt(29,isSend);

              preDBUtil.setInt(30,docInfo.getDocInfoId());

             

              Object obj = preDBUtil.executePrepared();

              return docInfo.getDocInfoId();

           } catch (SQLException e) {

              e.printStackTrace();

              throw new DataAccessException("向OFFICE_DOCINFO表插入记录错:"+e.getMessage(),e);

           }

    

4.5.2一般更新操作
       

        String sqlstr = "UPDATE OFFICE_DOCINFO SET DOCMODE = " + newStatus +" WHERE DOCINFO_ID = "+docInfoId;

       DBUtil dbUtil = new DBUtil();

       try {

           dbUtil.executeUpdate(sqlstr);

// dbUtil.executeUpdate(“bspf”,sqlstr);;在指定的数据库中,执行sql语句。

 

       } catch (SQLException e) {

           e.printStackTrace();

           throw new DataAccessException("更新公文状态错:"+e.getMessage(),e);

       }

      

 

 

 

4.5.3 CLOB字段的更新操作
PreparedDBUtil db = new PreparedDBUtil();

       StringBuffer sql = new StringBuffer();

       sql.append("update TD_CMS_DOCUMENT set TITLE=?,SUBTITLE=?,")     

           .append("AUTHOR=?,CONTENT=?,KEYWORDS=?,")      //dockind

           .append("DOCABSTRACT=?,")

           .append("TITLECOLOR=?,")

           .append("DOCSOURCE_ID=?,")

           .append("DETAILTEMPLATE_ID=?,")

           .append("LINKTARGET=?,Doc_level=?,PARENT_DETAIL_TPL=?,PIC_PATH=?,mediapath=?,publishfilename=?,")

           .append("docwtime=" + DBUtil.getDBDate(doc.getDocwtime()))

           .append(",secondtitle=?,isnew=?,newpic_path=?,ordertime=? where document_id=?") ;

 

      

       try

       {

           db.preparedUpdate(sql.toString());

           //db.preparedUpdate(“bspf”,sql.toString());

          

           db.setString     (1,doc.getTitle());

           db.setString     (2,doc.getSubtitle());

           db.setString     (3,doc.getAuthor());

           db.setClob       (4,doc.getContent(),"content");

           db.setString     (5,doc.getKeywords());

           db.setString     (6,doc.getDocabstract()==null?"无":doc.getDocabstract());

           db.setString     (7,doc.getTitlecolor());

           db.setInt        (8,doc.getDocsource_id());

           db.setInt        (9,doc.getDetailtemplate_id());

           db.setString     (10,doc.getLinktarget());

           db.setInt        (11,doc.getDoc_level());

           db.setString     (12,doc.getParentDetailTpl());

           db.setString     (13,doc.getPicPath());

           db.setString     (14,doc.getMediapath());

           db.setString     (15,doc.getPublishfilename());

           db.setString     (16,doc.getSecondtitle());

           db.setInt        (17,doc.getIsNew());

           db.setString     (18,doc.getNewPicPath());

           db.setTimestamp  (19,new Timestamp(doc.getOrdertime().getTime()));

           db.setPrimaryKey (20,doc.getDocument_id());

           db.executePrepared();

          

           b = true;

       }

       catch (SQLException e)

       {

           e.printStackTrace();

           throw new DocumentManagerException(e.getMessage());

       }

       return b;

 

4.5.3 BLOB字段的更新操作
PreparedDBUtil db = new PreparedDBUtil();

       StringBuffer sql = new StringBuffer();

       sql.append("update TD_CMS_DOCUMENT set TITLE=?,SUBTITLE=?,")     

           .append("AUTHOR=?,CONTENT=?,KEYWORDS=?,")      //dockind

           .append("DOCABSTRACT=?,")

           .append("TITLECOLOR=?,")

           .append("DOCSOURCE_ID=?,")

           .append("DETAILTEMPLATE_ID=?,")

           .append("LINKTARGET=?,Doc_level=?,PARENT_DETAIL_TPL=?,PIC_PATH=?,mediapath=?,publishfilename=?,")

           .append("docwtime=" + DBUtil.getDBDate(doc.getDocwtime()))

           .append(",secondtitle=?,isnew=?,newpic_path=?,ordertime=? where document_id=?") ;

 

      

       try

       {

           db.preparedUpdate(sql.toString());

           //db.preparedUpdate(“bspf”,sql.toString());

          

           db.setString     (1,doc.getTitle());

           db.setString     (2,doc.getSubtitle());

           db.setString     (3,doc.getAuthor());

           db.setBlob       (4,doc.getContent(),"content");

           db.setString     (5,doc.getKeywords());

           db.setString     (6,doc.getDocabstract()==null?"无":doc.getDocabstract());

           db.setString     (7,doc.getTitlecolor());

           db.setInt        (8,doc.getDocsource_id());

           db.setInt        (9,doc.getDetailtemplate_id());

           db.setString     (10,doc.getLinktarget());

           db.setInt        (11,doc.getDoc_level());

           db.setString     (12,doc.getParentDetailTpl());

           db.setString     (13,doc.getPicPath());

           db.setString     (14,doc.getMediapath());

           db.setString     (15,doc.getPublishfilename());

           db.setString     (16,doc.getSecondtitle());

           db.setInt        (17,doc.getIsNew());

           db.setString     (18,doc.getNewPicPath());

           db.setTimestamp  (19,new Timestamp(doc.getOrdertime().getTime()));

           db.setPrimaryKey (20,doc.getDocument_id());

           db.executePrepared();

          

           b = true;

       }

       catch (SQLException e)

       {

           e.printStackTrace();

           throw new DocumentManagerException(e.getMessage());

       }

  4.5.4 预编译更新操作和普通更新操作的不同点


jdbc规范提供了两种不同的更新操作模式:预编译和普通两种,二者的区别为:

预编译更新的操作效率高,有效防止sql注入问题,编码和调试没有普通更新操作方便,综合各种因素推荐使用预编译更新操作。

 

0
0
分享到:
评论

相关推荐

    bboss persistent 1.0.2中方便地实现大字段(clob,blob)的处理

    4. **源码分析**:标签中提到的“源码”意味着我们可以通过查看BBoss Persistent的源代码来了解其内部处理大字段的具体实现。通过这种方式,开发者可以更好地理解其工作原理,进行定制化开发或优化。 5. **工具支持...

    bboss+es基本操作示例.zip

    bboss支持JDBC式的操作方式,使得开发者可以像操作数据库一样操作Elasticsearch,提高了开发效率。 3. **bboss与Elasticsearch的集成** 集成bboss和Elasticsearch时,首先需要在项目中引入bboss的依赖,并配置...

    由 bboss 开源的数据采集&流批一体化工具,提供数据采集、数据清洗转换处理和数据入库以及数据指标统计计算流批一体化处理功能

    bboss-datatran 支持多种数据源的接入,如关系型数据库(MySQL、Oracle等)、NoSQL数据库(HBase、MongoDB等)、消息队列(Kafka、RabbitMQ等)以及文件系统(HDFS、FTP等)。通过内置的适配器,用户可以方便地将...

    bboss elasticsearch-5.7.8.rar

    3. `bboss-util-5.5.0.jar`和`bboss-persistent-5.5.0.jar`:这是BBoss框架的核心组件,提供了许多实用工具类和持久化操作支持,如数据库连接、事务管理等,为Elasticsearch的数据导入提供底层支持。 4. `...

    bboss-db-elasticsearch-tool-master_java_

    这个框架使得开发人员能够在Java应用程序中更加高效地操作数据库,而无需编写大量的SQL语句。 ORM框架的核心目标是通过将数据库操作与业务逻辑解耦,提高代码的可读性、可维护性和可移植性。BBoss-DB-Elasticsearch...

    elasticsearch:基于springboot整合bboss es实现的demo项目

    本实例是一个基于bboss es spring boot starter的demo maven工程,可供spring boot项目集成bboss elasticsearch rest client参考 展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:...

    bboss会话共享培训文档

    对于修改session中的对象数据,必须调用session.setAttribute方法将对象数据更新到MongoDB中,从而实现数据的共享。 bboss会话共享还提供了两种模式: 1. 集群间会话共享模式,这种模式实现了一个应用集群中各个...

    bboss mvcdemo 下载地址

    4. **AOP(面向切面编程)**:BBoss MVCDemo支持AOP,可以实现如事务管理、日志记录、权限控制等功能,提高代码的复用性和可维护性。 5. **国际化与本地化**:框架内置了国际化和本地化支持,使得应用可以根据用户...

    企业级J2EE开源框架bboss

    2. **数据库操作**:BBoss提供了便捷的数据访问层(DAO),支持SQL动态生成、事务管理以及多种数据库的兼容性,使得数据库操作变得简单且高效。 3. **服务治理**:框架内置了服务注册与发现机制,可以实现微服务...

    bboss-elasticsearch开发环境搭建和开发入门视频教程.

    2. **bboss elasticsearch开发入门教程.wmv**: 通过实例演示,讲解如何使用BBoss进行索引操作、数据插入、查询和更新,帮助初学者快速上手。 **六、资料阅读** "说明.txt" 文件可能包含了关于这些教程的详细步骤和...

    springboot整合bboss es增删改查测试demo代码

    本实例是一个基于bboss es spring boot starter的demo maven工程,可供spring boot项目集成bboss elasticsearch rest client参考 展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:...

    bboss mvc 通过jsonp实现跨站跨域远程访问

    标题中的“bboss mvc 通过jsonp实现跨站跨域远程访问”指的是使用bboss MVC框架来处理JSONP(JSON with Padding)请求,以克服浏览器的同源策略限制,实现跨域数据交互。bboss MVC是一个Java Web开发框架,它提供了...

    springboot集成ElasticsearchBboss调用Elasticsearch.md

    springboot集成ElasticsearchBboss调用Elasticsearch的案例分享

    bboss会话共享培训文档分享

    bbosssession是一个用于集群环境中实现会话共享的解决方案,它提供了第四代集群会话管理的完整实现,与之前的会话管理方式相比,有着诸多优势和特点。本培训文档将介绍集群session管理的发展历史、bbosssession的...

    bboss 安全认证过滤器功能介绍

    BBoss安全认证过滤器是Java Web开发中一种用于实现用户身份验证和权限控制的重要组件。在Web应用程序中,过滤器(Filter)是Servlet规范的一部分,它允许开发者在请求到达目标Servlet或JSP之前进行预处理,以及在...

    基于bboss新版平台项目环境搭建和代码工具使用视频教程.rar

    "基于bboss新版平台项目环境搭建和代码工具使用视频教程"提供了一套详细的指导,旨在帮助开发者快速掌握bboss新版本平台的相关操作。bboss,全称为Business Basic Open Source,是一个开源的企业级开发框架,它为...

Global site tag (gtag.js) - Google Analytics