0
在MyBatis的PostgreSQL的運行時選擇我得到這個錯誤:錯誤的MyBatis在設置參數
### The error may exist in data/mapper.xml
### The error may involve Transaccion.selectDeFraude-Inline
### The error occurred while setting parameters
### SQL: SELECT transaction_id, card_number, transaction_date, fraud FROM transactions.? ORDER BY card_number, transaction_date ASC;
### Cause: org.postgresql.util.PSQLException: ERROR: error de sintaxis en o cerca de «$1»
我這裏得到的錯誤,在mapper.xml:
<select id="selectDeFraude" parameterType="String" resultMap="result">
SELECT transaction_id, card_number, transaction_date, fraud FROM transactions.#{tabla} ORDER BY card_number, transaction_date ASC;
</select>
這是方法,調用select:
public List<Transaccion> selectDeFraude(String tabla){
SqlSession session = sqlSessionFactory.openSession();
try {
List<Transaccion> list = session.selectList("Transaccion.selectDeFraude", tabla);
return list;
} finally {
session.close();
}
}
public List<Transaccion> selectDeFraude(String tabla){
SqlSession session = sqlSessionFactory.openSession();
try {
List<Transaccion> list = session.selectList("Transaccion.selectDeFraude", tabla);
return list;
} finally {
session.close();
}
}
如果我用#的名稱替換#{tabla}它的工作就好了。如果我用合適的值替換#{something},則所有映射器方法都不起作用。
SQL語句末尾有分號。錯誤可能是由分號引起的,您可以將其刪除並重試。 – wasabi