我遇到了一个奇怪的情况。代码如下:Java奇怪的变量赋值查询
public static int add(String trcd, String tlcd, String dept, String doDate,
String doTime, String andConfirm, Teller admin) throws
Exception {
try {
String table1 = "table1";
String table2 = "table2";
String trap = null;
String trtype = null;
String sql = "select * from " + table2;
DataSet dataset = DBOper.DBQuery("taUtil", sql);
if (dataset.isEmpty()) {
return -1;
}
else {
HashMap map = dataset.getRow(0);
trap = (String) map.get("aut_ap_code");
trtype = (String) map.get("aut_type_code");
//point 1
sql = "insert into " + table1 + " values("+trtype + "','" + doDate + "','" + doTime + "','N','Y')";
DBOper.DBUpdate("taUtil", sql);
if (andConfirm.equals("Y")) {
//point 2
sql = "select * " + table1 +" where tr_create_date='" + doDate + "' and tr_create_time='" + doTime + "' and tr_stcd='Y'";
//point 3
DataSet dataset2 = DBOper.DBQuery("taUtil", sql);
if (dataset2.isEmpty()) {
return -2;
}
else {
String trNo = null;
HashMap map2 = dataset2.getRow(0);
trNo = (String) map2.get("tr_no");
confirm(admin, trNo, "N");
}
}
return 0;
}
}
catch (Exception e) {
throw e;
}
}
的问题是:
第3点,它 始终打印“插入”,即以前的SQL值,而不是最新分配“选择”。
有谁知道为什么会这样? 感谢
重现该问题的邮政编码和每个人都可以编译它拥有JDK –
不想称你为骗子,但很难相信。你能重新编译这段代码,并确保你正在运行你在这里发布的内容吗? –
在'sql =“插入到”+ ...'行,以''values ...'开头的字符串没有未转义的引号。代码如何编译? – nhahtdh