Run sql in Java

程序员的工作并不是总是都充满了创造性。由于某些原因(比如ui设计人员的想当然,或者领导的反复无常),我不得不去做一些烦琐的工作。这不,又来了。

工作要求:把A表的CODE字段内容前加上“CODE_”前缀。(A表ID字段是主键)
 A表如下
 +----------------+
 |           A          |
 +----------------+
 |   ID |  CODE |
 +----------------+

数据库中几百条记录难道要我一条一条的修改么?当然我可不愿意这么做。程序员的美德——懒惰——又在我心中作祟了。数据库程序员可能马上会想到PL/SQL吧,它具有可编程能力,解决这个问题简直是小菜一碟。我刚到公司的时候也受过PL/SQL的培训,不过仅半天的培训,我只是像听科普讲座一样大概了解一下。况且这么久,也忘的差不多了。作为一个Java程序员我又想到了其他办法——java.sql包。

直入正题,代码如下:
/**
 * ChangeCode.java
 * 修改tb_sys_codeitem表的c_typecode字段
 *
 *  <code>
 *  <p>Created on 2005-12-2 13:09:57</p>
 *  <p>By  lonely bug </p>
 *  </code>
 */

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class ChangeCode {
      
       public static void main(String[] args) throws Exception{

               Class.forName("oracle.jdbc.driver.OracleDriver");
               Connection Conn = DriverManager.getConnection(
                               "jdbc:oracle:thin:@192.168.29.253:1521:oradb", "lonelybug", "lonelybug");
               Statement stmtSel = Conn.createStatement();
               ResultSet rs = stmtSel.executeQuery("select * from A");
               while (rs.next()) {
                       String oldCode = rs.getString("CODE");
                       long id = rs.getLong("ID");
                       Statement stmtUpd = Conn.createStatement();
                       StringBuffer sql = new StringBuffer(
                                       "update A set CODE = '");
                       sql.append("CODE_").append(oldCode).append("' where ID = ")
                                       .append(id);
                       stmtUpd.executeQuery(sql.toString());
                       stmtUpd.close();
               }
               rs.close();
               stmtSel.close();
               Conn.close();
       }

}

java.sql包是如此的方便,能把我们从繁重的劳动中解脱出来:)尤其是对这种大数量的更新记录工作有奇效。也许明天,领导说把现在A表中的所有记录的B字段带CODE_前缀的去掉CODE_前缀,不带CODE_前缀的加上CODE_前缀。Oh,my God!不过我想这难不倒我:)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值