今天发现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 = ''有人遇到过这种情况吗?