自己写的一个执行带参数的sql,PreparedStatement

时间:2022-12-27 11:56:14

 之前是做.net的。转到java以后,发现很多问题,还有一些不便之处。但是我们可以自己动手。

public int exesql(String sql,Object[] param) throws SQLException, ClassNotFoundException{
         getConnection();
        
         PreparedStatement pstmt=this.conn.prepareStatement(sql);

         for(int i=0;i<param.length;i++){
             String s=param[i].getClass().toString();
             if(s.equals("class java.lang.String")){
                 pstmt.setString(i+1, param[i].toString());
             }else if(s.equals("class java.lang.Integer")){
                 pstmt.setFloat(i+1, Float.parseFloat(param[i].toString()));
             }
             else if(s.equals("class java.lang.Long")){
                 pstmt.setLong(i+1, Long.parseLong(param[i].toString()));
             }
             else if(s.equals("class java.lang.Float")){
                 pstmt.setFloat(i+1, Long.parseLong(param[i].toString()));
             }
             else if(s.equals("class java.util.Date")){

                 pstmt.setDate(i+1, new java.sql.Date(((java.util.Date)param[i]).getTime()));
             }
             else if(s.equals("class java.lang.Double")){
                 pstmt.setDouble(i+1, Double.parseDouble(param[i].toString()));
             }
         }
         //pstmt.setdo
         return pstmt.executeUpdate();
     }

 

实例:

String sql="insert into    feel (title,ip,userid,createtime)values(?,?,?,?)";
        Object[] param=new Object[4];
        param[0]="祖国美好";
        param[1]="127.0.0.1";
        param[2]="12";
        param[3]=new Date();
     XXX.exesql(sqlparam);