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