public void saveMid(PasscarInfo vehicleInfo) { String sql = "insert into TGSPASSCAR_I valus(?,?,?,?,?,?,?,?,?,?,?)";
String passcard_Id2 = iDGeneratorBSimpl.getReccordId("TGSPASSCAR_I");

vehicleInfo.setRecId(passcard_Id2);
return publicDao.updateBySql(sql, params);
}
params貌似是一个数组,请问怎么定义啊!!!本人实属虾米小菜,,求各位大侠指点  ,,,不甚感激!!救命用~

解决方案 »

  1. 数组应该做不到吧,还应该保存数据库的类型吧。
    把要填充的参数按照sql中的位置放到map(类型,value);
    然后用原来的sql ,replaceFirst ?就行了。注意类型,如:String的话sql语句要加'
      

  2. 怎么定义?如果DAO不是你写的,去看你的publicDao.updateBySq这个方法要求的params是什么,
    第一种可能:
    一般应该是个对象数据,像这样
    Object[] params = new Object[];
    或者如果你知道这个数组的参数的话就这样
    Object[] params = new Object[userName,password,nickName];userName,password,nickName就相当于你的sql语句要用到的参数,sql语句像这样
    sql="insert into users values(?,?,?)"
    第二种可能,有可能params是个Map,但是看你写的sql语句,就知道不是map了。如果是map的话,sql语句应该写成这样
    sql="insert info users valuse(:userName,:password,:nickName)";
    那么map就这样
    map.put("userName",userName);
    map.put("password",passWord);
    map.put("nickName",nickName);
    这里注意map的键一定要和sql语句中的:后面的名称对应一样。还有那个:号别丢了。就这么多了,楼主自己看吧。
      

  3. 更正一下,map也可用于第一种语句,看错了。。
      

  4. publicDao.updateBySql(sql, params)   这个方法你也得贴下,问题描述未到重点啊
      

  5. publicDao.updateBySql(sql, params)这是一个封装类   我也看不见   不过我知道  params是一个数值   应该是对象的吧
    TGSPASSCAR_I 是一个表名    主要功能是把一个对象类的部分参数   放到一个表中去
      

类似问题 »