今天发现mysql4.1.18在linux系统下面,不支持java的下列写法:
sql = "SELECT id,src_terminal_id,msg_content FROM mo_cache WHERE id =? or src_terminal_id =?";
psmt_cs = conn_cs.prepareStatement(sql);
psmt_cs.clearParameters();
psmt_cs.setLong(1,12345);
psmt_cs.setString(2,"12345");
rest_cs = psmt_cs.executeQuery();
if(rest_cs.next()) {
System.out.println("mobile:" + rest_cs.getString("src_terminal_id"));
System.out.println("msg:" + rest_cs.getString("msg_content"));
} else {
System.out.println("未查到记录!");
}这种sql语句里面有?,然后在PerparedStatment里面用set***的方法来赋值:psmt_cs.setLong(1,12345) ,这句sql语句传到数据库那边执行的时候,似乎setLong没有起作用,在数据库上查看执行的sql语句为
SELECT * FROM 10011_mo_cache WHERE id = 1689936487514368 or src_terminal_id = ''有人遇到过这种情况吗?
sql = "SELECT id,src_terminal_id,msg_content FROM mo_cache WHERE id =? or src_terminal_id =?";
psmt_cs = conn_cs.prepareStatement(sql);
psmt_cs.clearParameters();
psmt_cs.setLong(1,12345);
psmt_cs.setString(2,"12345");
rest_cs = psmt_cs.executeQuery();
if(rest_cs.next()) {
System.out.println("mobile:" + rest_cs.getString("src_terminal_id"));
System.out.println("msg:" + rest_cs.getString("msg_content"));
} else {
System.out.println("未查到记录!");
}这种sql语句里面有?,然后在PerparedStatment里面用set***的方法来赋值:psmt_cs.setLong(1,12345) ,这句sql语句传到数据库那边执行的时候,似乎setLong没有起作用,在数据库上查看执行的sql语句为
SELECT * FROM 10011_mo_cache WHERE id = 1689936487514368 or src_terminal_id = ''有人遇到过这种情况吗?
src_terminal_id 对应字段是否为数字,那就换一下
psmt_cs.setLong(1,12345);
psmt_cs.setLong(2,67890);