bboss persistent 实现数据库更新操作

简介: 4.5 更新操作代码段    4.5.1预编译更新操作        PreparedDBUtil preDBUtil = new PreparedDBUtil();        int pk = 0;        String sqlstr = "update OFFICE_...

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注入问题,编码和调试没有普通更新操作方便,综合各种因素推荐使用预编译更新操作。

 

目录
相关文章
|
8天前
|
SQL Java 数据库连接
使用Hibernate进行数据库持久化操作
【4月更文挑战第15天】Hibernate 是一款开源 ORM 框架,简化数据库操作,通过映射将 Java 对象与表交互。核心接口包括 SessionFactory、Session、Transaction、Query 和 Criteria。使用 Hibernate 需添加依赖,配置 hibernate.cfg.xml 文件,设置数据库信息,并创建实体类及映射文件。
|
11月前
|
存储 开发框架 Oracle
Quartz-任务调度信息持久化到DB中
Quartz-任务调度信息持久化到DB中
145 0
|
11月前
|
SQL 测试技术 数据库
生产环境在对Web应用进行版本回退时针对数据库表的回滚操作
生产环境在对Web应用进行版本回退时针对数据库表的回滚操作
92 0
|
缓存 前端开发
ehcache jgroups同步,节点重启初始化缓存bug
ehcache jgroups同步,节点重启初始化缓存bug
114 0
|
SQL 安全 JavaScript
SpringBoot整合Flyway完成数据库持久化迭代更新
每次服务的代码更新部署,难免会存在`数据库结构`的变更以及`字典数据的添加`,手动`执行更新脚本`是一个`耗时耗力`的工作,而且还会出现遗漏或者其他状况,`SpringBoot`内部集成了一个自动执行数据库脚本的第三方依赖`Flyway`来解决这个繁琐的问题。
|
Java 数据库连接 数据库
第11章—使用对象关系映射持久化数据—SpringBoot+SpringData+Jpa进行查询修改数据库
SpringBoot+SpringData+Jpa进行查询修改数据库 JPA由EJB 3.0软件专家组开发,作为JSR-220实现的一部分。但它又不限于EJB 3.0,你可以在Web应用、甚至桌面应用中使用。
1250 0
|
缓存 NoSQL 数据库
Flask中数据库关联表与缓存cache(十二)
1 一对多(One To Many) 表示一对多的关系时,在子表类 Post 中需要通过 foreign key (外键)引用父表类 User 在Post类中指定ForeignKey: class Post(db.
bboss持久层开启和关闭自带主键机制
bboss持久层开启和关闭自带主键机制 请访问文档: bboss持久层开启和关闭自带主键机制
816 0
|
Java 数据库连接 数据库
hibernate persist update 方法没有正常工作(不保存数据,不更新数据)
工程结构 问题描述 在工程中通过spring aop的方式配置事务,使用hibernate做持久化。在代码实现中使用hibernate persit()方法插入数据到数据库,使用hibernate update()方法更新数据。
1134 0
|
监控 Java 数据格式
bboss session会话属性数据查询功能配置使用方法
bboss session会话属性数据查询功能配置使用方法. session管理在线试用地址: http://session.bbossgroups.com http://sessionmonitor.
1212 0

热门文章

最新文章