当前位置:七道奇文章资讯编程技术Java编程
日期:2011-01-26 02:54:00  来源:本站整理

<b>JDBC中的增添、删除、改正操作的共用办法</b>[Java编程]

赞助商链接



  本文“<b>JDBC中的增添、删除、改正操作的共用办法</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
用来实现增添、删除、改正操作的共用办法.分为两个办法,一个是设置PreparedStatement ps;对象参数的办法.一个是履行泛型PreparedStatement ps;对象的.

    下面来看一下吧:

/*

* Author:spring

* Date :09-03-06 20:28

*/

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泛型列表的办法

*/

privateboolean 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

returntrue;

} catch (Exception e) {

// 呈现非常回滚事件

e.printStackTrace();

System.out.println("履行批量时error");

this.conn.rollback();

//本性化非常

thrownew MyException("page.error.1000","1000 数据履行的批量出错.");

//throw new SQLException();

} finally {

// 最后把手动提交改成自动提交

this.conn.setAutoCommit(true);

// 关闭不用的资源

for (int i = 0; i ﹤ x; i++) {

DBUtils.close(pss.get(i));

}

}

}

    //下面来介绍一下它们的用法

    要实现一个用户增添的功效,在增添的同时还要往log日记表中增添是谁操作的

    这就要用到事件处理了

/*

     *增添用户

     */

    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_Rating"));//权限与用户状况

           // 获得当前操作员的u_id

           String u_Id = (String) dto.get("u_Id");

           pars2 = new ArrayList();

           pars2.add("SPRING_USERS"); // 设置1 操作的表名

           pars2.add(u_Id); // 设置2 操作人id

           pars2.add("这是用户增添操作:用户名:" + this.dto.get("u_Name"));// 设置3

                                                        // 描写看看是不是增添操作

           pars2.add(Tools.getSqlTimestamp()); // 设置4 操作时间

           // 3.编译sql语句并设置参数

           pss = new ArrayList ();

           ps1 = this.conn.prepareStatement(sql1.toString());

           ps2 = this.conn.prepareStatement(sql2.toString());

           // 设置参数

           pss.add(this.setPreparedStatement(ps1, pars1));

           pss.add(this.setPreparedStatement(ps2, pars2));

           // 4.调用履行sql语句的办法

           returnthis.exceurePreparedStatement(pss);

       } finally {

           // 5.释放利用资源

           DBUtils.close(ps1);

           DBUtils.close(ps2);

       }

    }

    这里的一些办法是我封装的像获得当前用户的u_id , String u_Id = (String) dto.get("u_Id");这是我用的构造传过来的dto所以我们不用管它;

    解析一下用法:

    1. 设置sql语句

    2. 编译sql语句(用PreparedStatement)

    3. 定义一个泛型PreparedStatement

    4. 设置PreparedStatement的参数返回来增添到泛型里

    5. 调用履行泛型中的PreparedStatement 对象

    6. 关闭不需求的资源


  以上是“<b>JDBC中的增添、删除、改正操作的共用办法</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .