现在的位置: 首页 > 综合 > 正文

线性表进行UPDATE操作

2013年08月09日 ⁄ 综合 ⁄ 共 1669字 ⁄ 字号 评论关闭

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

刚刚用到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();
    }

 

 

 

抱歉!评论已关闭.