两种实现JDBC添加、删除、修改操作的方法对比 在本文中,我们将讨论两种实现JDBC添加、删除、修改操作的方法对比。这些方法可以用来实现添加、删除、修改操作的共用方法,分为两个方法:一个是设置PreparedStatement ps对象参数的方法,另一个是执行泛型PreparedStatement ps对象的方法。 设置PreparedStatement ps对象参数的方法 该方法的主要功能是设置PreparedStatement ps对象的参数。它可以提高性能,因为它可以根据数组的长度来设置参数。该方法的代码如下所示: ```java private PreparedStatement setPreparedStatement(PreparedStatement ps, List pars) throws SQLException { try { // 1.获取数组的长度这样能提高一点性能 int x = pars.size(); // 2.循环设置 ps 中需要的参数 for (int i = 0; i < x; i++) { ps.setObject(i + 1, pars.get(i)); System.out.println(pars.get(i)); } // 3.添加到缓冲区中 ps.addBatch(); // 4.设置完参数的 ps 返回 return ps; } finally { } } ``` 执行泛型PreparedStatement ps对象的方法 该方法的主要功能是执行泛型PreparedStatement ps对象。它可以执行多个PreparedStatement对象,并且可以手动提交事务。该方法的代码如下所示: ```java private boolean exceurePreparedStatement(List<PreparedStatement> pss) throws SQLException { int x = 0; try { // 1.为手动提交 this.conn.setAutoCommit(false); // 2.执行所有的 PreparedStatement 对象 x = pss.size(); for (int i = 0; i < x; i++) { pss.get(i).executeBatch(); } // 3.没有错误的话的就提交事务 this.conn.commit(); System.out.println("执行 executeBatch()"); // 4.如果提交成功那就返回成功 true return true; } catch (Exception e) { // 出现异常回滚事务 e.printStackTrace(); System.out.println("执行批量时 error"); this.conn.rollback(); // 个性化异常 throw new MyException("page.error.1000", "1000 数据执行的批量出错."); } finally { // 最后把手动提交改为自动提交 this.conn.setAutoCommit(true); // 关闭不用的资源 for (int i = 0; i < x; i++) { DBUtils.close(pss.get(i)); } } } ``` 使用方法 下面是一个使用的示例,演示如何使用这些方法来实现用户添加功能。在添加用户的同时,还要往log日志表中添加是谁操作的。这就要用到事务处理了。 ```java public Boolean add_Users() throws SQLException { try { // 1.要执行的 sql 语句 sql1 = new StringBuilder() .append("insert into spring_users(U_ID,u_Name,u_Password,u_Email,u_State)") .append(" values(SEQ_USERS.NEXTVAL,?,?,?,?)"); // 添加日志 sql2 = new StringBuilder() .append("insert into SPRING_LOG(L_ID,L_NAME,U_ID,L_MESSAGE,L_DATE)") .append(" values(SEQ_LOG.nextval,?,?,?,?)"); // 2.要设置的参数列表 pars1 = new ArrayList(); pars1.add(dto.get("u_Name")); // 用户名 pars1.add(dto.get("u_Password")); // 用户密码 pars1.add(dto.get("u_Email")); // 用户 E-email pars1.add(dto.get("u_State")); // 用户状态 // ... } catch (Exception e) { // ... } finally { // ... } } ``` 两种实现JDBC添加、删除、修改操作的方法对比可以用来实现添加、删除、修改操作的共用方法。其中,设置PreparedStatement ps对象参数的方法可以提高性能,而执行泛型PreparedStatement ps对象的方法可以执行多个PreparedStatement对象,并且可以手动提交事务。
- 粉丝: 6
- 资源: 965
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 员工培训需求调查问卷.doc
- 如何确定针对性的培训需求.doc
- 素质能力培训需求分析模型.doc
- 怎样进行有效的培训需求分析(doc 9).doc
- 制造业各工位培训需求.doc
- 做好培训需求分析,奠定企业员工培训的基础(DOC 8页).doc
- SQLSERVER2005卸载方法word文档doc格式最新版本
- MicrosoftSQLServer2008安装和数据库实例创建操作手册doc版冯冰最新版本
- 西电微机原理实验PDF
- P6ProfessionalSetup R24.12 安装包
- MicrosoftSQLServer2008数据库安装图解集合[特别整理版]最新版本
- 含光伏的储能选址定容模型 14节点 程序采用改进粒子群算法,对分析14节点配网系统中的储能选址定容方案,并得到储能的出力情况,有相关参考资料 这段程序是一个粒子群算法(Particle Swarm O
- PROGPPCNEXUS读写烧录刷写软件 飞思卡尔MPC55xx 56xx 57xx 58xx 没有次数限制
- 01_python_基本语法_纯图版.pdf
- 考虑新能源消纳的火电机组深度调峰策略 摘要:本代码主要做的是考虑新能源消纳的火电机组深度调峰策略,以常规调峰、不投油深度调峰、投油深度调峰三个阶段,建立了火电机组深度调峰成本模型,并以风电全额消纳为前
- EV3100电梯专用变频器源代码