使用bboss persistent框架实现数据库的插入操作

简介: 4.3.1预编译插入        PreparedDBUtil preDBUtil = new PreparedDBUtil(); ----------------->定义预编组件实例        Action action = (Action)vo;        String sRecord = action.

4.3.1预编译插入
        PreparedDBUtil preDBUtil = new PreparedDBUtil(); ----------------->定义预编组件实例

       Action action = (Action)vo;

       String sRecord = action.getRecord();

       Timestamp   tsOperTime = (Timestamp)action.getOperTime();

       int    iTypeId = action.getActionTypeID();

       int    iDocInfoId = action.getDocInfoId();

       int    iStatus = action.getStatus();

       int    iActionId = 0;

       String activityID = action.getActivityID();

       String userId = action.getActorID();

       Id = “0”;

       String sqlstr = "INSERT INTO OFFICE_DOCACTION (id,RECORD, OPERTIME, TYPE_ID, ACTDOCINFO_ID, STATUS,ACTIVITYID, ACTIONUSER_ID) " +

              "VALUES(?,?,?,?,?,?,?,?)";

 


       try {

           preDBUtil.preparedInsert(sqlstr); ----------------->预编sql语句

           preDBUtil.setString(1,Id);preDBUtil.setString(2,sRecord);

          

           preDBUtil.setTimestamp(3,tsOperTime);

           preDBUtil.setInt(4,iTypeId);

           preDBUtil.setInt(5,iDocInfoId);

           preDBUtil.setInt(6,iStatus);

           preDBUtil.setString(7,activityID);

           preDBUtil.setString(8,userId);

          } catch (SQLException e) {

           e.printStackTrace();

           throw new DataAccessException("",e);

       }

      

       。。。。。

   

4.3.1普通插入
DBUtil dbUtil = new DBUtil();

String insert = “insert into test (id,name) values(0,’test’)”

dbUtil.executeInsert(insert);//在默认的数据库上执行,在指定的数据库上面使用以下方法:dbUtil.executeInsert(dbName,insert);

 

4.3.2 blob字段的插入
void prepareDefaultInsertBlob()

       {

           for(int i = 0; i < 1; i ++)

           {

              PreparedDBUtil p = new PreparedDBUtil();            

              try {

                 

              //content字段类型为blob字段

                  p.preparedInsert("insert into test(name,content) values(?,?)");

                  p.setPrimaryKey(1,"biaoping.yin1","name");//设定唯一标识字段

                  p.setBlob(2,new File("D:/workspace/shark-1.1-2.src.zip"),"content");//将文件插入blob字段

//                p.setBlob(2,"asdfasdf".getBytes(),"content");//将二进制流插入blob字段

                 

//                p.getString(1,"content");

                 

                  p.executePrepared();

              } catch (SQLException e) {

                  // TODO Auto-generated catch block

                  e.printStackTrace();

              } catch (Exception e) {

                  // TODO Auto-generated catch block

                  e.printStackTrace();

              }

           }

       }

4.3.3 clob字段的插入
 

void prepareDefaultInsertClob()

       {

           for(int i = 0; i < 1; i ++)

           {

              PreparedDBUtil p = new PreparedDBUtil();

             

             

              try {

                 

              //content字段类型为clob

                  p.preparedInsert("insert into test(name,content) values(?,?)");

                  p.setPrimaryKey(1,"biaoping.yin1","name");//设定唯一标识字段

                 

                  p.setClob(2,"阿斯顿发生的飞","content");

                 

                 

                  p.executePrepared();

              } catch (SQLException e) {

                  // TODO Auto-generated catch block

                  e.printStackTrace();

              } catch (Exception e) {

                  // TODO Auto-generated catch block

                  e.printStackTrace();

              }

           }

          

          

       }

 

4.5.3 预编译插入和普通插入操作的不同点
预编译插入和普通插入都是在表中添加一条记录,普通插入操作编码比较方便,程序可读性强一些,但是存在sql注入的风险,预编译插入能够有效地防止sql注入,执行的效率比普通插入的效率要高一些,但是编写的代码不是很直观,考虑到系统的安全和性能应该优先考虑预编译插入操作

 

 

目录
相关文章
|
5月前
|
搜索推荐 前端开发 算法
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
本文介绍了一个基于用户画像和协同过滤算法的音乐推荐系统,使用Django框架、Bootstrap前端和MySQL数据库构建,旨在为用户提供个性化的音乐推荐服务,提高推荐准确性和用户满意度。
419 7
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
|
5月前
|
SQL Java 数据库连接
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。通过映射机制,它可以自动处理对象与数据库表之间的转换,支持主流数据库,提高了代码的可移植性和可维护性。其核心接口包括 SessionFactory、Session 和 Transaction 等,通过它们可以执行数据库的 CRUD 操作。配置方面,需在项目中引入 Hibernate 及数据库驱动依赖,并创建 `hibernate.cfg.xml` 配置文件来设置数据库连接和 Hibernate 行为参数。
74 1
|
5月前
|
数据采集 前端开发 算法
基于朴素贝叶斯算法的新闻类型预测,django框架开发,前端bootstrap,有爬虫有数据库
本文介绍了一个基于Django框架和朴素贝叶斯算法开发的新闻类型预测系统,该系统具备用户登录注册、后台管理、数据展示、新闻分类分布分析、新闻数量排名和新闻标题预测等功能,旨在提高新闻处理效率和个性化推荐服务。
|
6月前
|
开发框架 缓存 NoSQL
基于SqlSugar的数据库访问处理的封装,在.net6框架的Web API上开发应用
基于SqlSugar的数据库访问处理的封装,在.net6框架的Web API上开发应用
|
6月前
|
开发框架 Oracle 关系型数据库
ABP框架使用Oracle数据库,并实现从SQLServer中进行数据迁移的处理
ABP框架使用Oracle数据库,并实现从SQLServer中进行数据迁移的处理
|
5月前
|
druid Java 数据库连接
SpringBoot项目整合MybatisPlus持久层框架+Druid数据库连接池,以及实现增删改查功能
SpringBoot项目整合MybatisPlus和Druid数据库连接池,实现基本的增删改查功能。
441 0
|
5月前
|
开发框架 NoSQL 关系型数据库
基于SqlSugar的开发框架循序渐进介绍(27)-- 基于MongoDB的数据库操作整合
基于SqlSugar的开发框架循序渐进介绍(27)-- 基于MongoDB的数据库操作整合
|
4天前
|
缓存 关系型数据库 MySQL
【深入了解MySQL】优化查询性能与数据库设计的深度总结
本文详细介绍了MySQL查询优化和数据库设计技巧,涵盖基础优化、高级技巧及性能监控。
52 0
|
1月前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
60 3
|
1月前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
78 3