如果字段shzt類型爲char(2)類型話,當給shzt=0時,通過PLSQL能查出來一條數據,但是項目運行中查不出來數據。
是因爲,PLSQL連接的數據庫是Oracle,而Oracle中字段類型爲char時,如果值長度不夠,Oracle會自動用空格補齊,但是項目中不會自動補齊,必須在代碼中補齊長度纔可以查的出來。
1.把type類型更改爲varchar(),並且刪除之前的測試數據 ,重新錄入測試數據
2.在sql語句中 where之後的出問題的條件字段做處理where trim(shzt)=#{shzt}
public String checkInit() {
StringBuilder sql = new StringBuilder();
sql.append("select * from TD_MPGL where trim(shzt)=5 and trim(cjstate)=0");
return sql.toString();
}
還有一種原因:
Oracle在插入數據時沒有提交事務,PLSQL裏面可以查到,項目中查不到