线性表进行UPDATE操作

上次写过一个,当时感觉还可以,现在看看也蛮不爽的。

刚刚用到JDBC写DAO时想到这样写,感觉还可以,不知大伙认为如何呢。。。

传一个对象过来进行更新操作,对旬具体内容不管,只要用标识列就OK了。。。,动态构造Update语句

 

public   void  updateArard(Award award)  throws  SQLException  {
        String teram 
= award.getTeram();
        java.text.DateFormat df 
= new java.text.SimpleDateFormat("yyyy-MM-dd");
        Date time 
= null;
        
try {
            time 
= df.parse(award.getTime());
        }
 catch (ParseException e) {
            e.printStackTrace();
        }

        String rs 
= award.getRs();
        String message 
= award.getMessage();
        String string1 
= award.getString1();
        
        String sql 
= "update award set";
        List list 
= new ArrayList();
        
if(teram != null || !"".equals(teram)) {
            sql 
+= " teram=?,";
            list.add(teram);
        }

        
if(time != null || !time.equals(null)) {
            sql 
+= " time=?,";
            list.add(time);
        }

        
if(rs != null || !"".equals(rs)) {
            sql 
+= " rs=?,";
            list.add(rs);
        }

        
if(message != null || !"".equals(message)) {
            sql 
+= " message=?,";
            list.add(message);
        }

        
if(string1 != null || !"".equals(string1)) {
            sql 
+= " string1=?,";
            list.add(string1);
        }

        String psql 
= sql.substring(0, sql.length()-1+ " where id=?";
        System.out.println(
"psql == "+psql);
        pstmt 
= con.prepareStatement(psql);
        
int i=1;
        
for(; i<=list.size(); i++){
            System.out.println(
"i=="+i);
            pstmt.setObject(i, list.get(i
-1));
        }

        pstmt.setInt(i
++, award.getId());
        pstmt.executeUpdate();
        pstmt.close();
    }

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值