java的Sql中?号赋值的经典错误

原创
2014/05/16 08:23
阅读数 60

下午,在写sql语句时,我用?号赋值,我用了两个?号,但奇怪的是,就是取不到数据,但又不报异常,我把sql打印出来,粘到sql sever 2008后台去执行又可以,当时很无奈啊:
   
   String Log_Num = “GZ0666”;

   String [] paras = {"'"+Log_Num+"'","'"+Log_Num+"'"}; 

   String Check_Type = " dep.id_sl = ? and wor.id_log = ?";   

   String sql = Log_SQL.getInstancex().All_Date(Database_Table, Check_Type,Database_Table_2);

Log_SQL类:
public String All_Date(String Database_Table_1, String Check_Type,String Database_Table_2){
String sql = Common_All_Sql()+" personnel_mi as dep, log_workers as wor where "+Check_Type;
return sql;
}
 
 public String Common_All_Sql(){

 
String sql= "select dep.id_sl 用户账号, dep.groups_sl 组别,dep.name_sl 用户姓名,wor.password_sl 用户密码,dep.post_sl 职位,dep.guest 访客权限, "+ " dep.common_purview 普通权限,dep.advanced_purview 高级权限,dep.admin_purview 管理员权限 "+ ",dep.gender 性别,dep.entry_date 入职日期,dep.identityx 身份证号,dep.age 年龄 ,dep.xieli 学历,dep.nation 民族 "+ ",
dep. birth_date 联系电话,dep.addressx 住址,dep.marriage 婚姻状况,dep.remark_sl 备注 from ";
 
return sql;
}
 

折腾了一下午,其中用了在右连接也不行,后面在Eclipse断点调试 ,也不知道什么原因,在后来,鑫鑫告诉我,这句话有问题,
String [] paras = {"'"+Log_Num+"'","'"+Log_Num+"'"};,参数两边不要加'号,因为在preparestatement设置参数的时候会自动加上,
我修改成
String [] paras = {Log_Num,Log_Num};果然可以,在这里万分感谢鑫鑫,当然,还有海峰,牵牛大哥,还有osc-徐航,

  陈鑫,小得意,生活有你们,我的世界很精彩,谢谢你们 。


展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部