我在postgresql中创建了一个函数,该函数接收两个varchar参数并返回void,它在pgadmin中执行它时正常工作,但我尝试从它调用它时遇到问题java的。我试着用executeQuery和其他一些我发现的例子来调用函数。问题是:在java中它似乎一切正常,但是当我在postgres中检查表时,它没有改变,当函数应该添加一个寄存器时。 我试着用这样的:从java调用postgres函数与JDBC不起作用
try (CallableStatement callableStatement =
dbConn.prepareCall("{ CALL prueba1(?,?) }")) {
callableStatement.setString(1,mun);
callableStatement.setString(2,edo);
callableStatement.execute();
callableStatement.close();
}
而与此...
try (Connection conn = DBConnection.createConnection(); PreparedStatement pstmt = conn.prepareStatement("{call prueba1(?,?)}")) {
pstmt.setString(1,mun);
pstmt.setString(2,edo);
ResultSet rs = pstmt.executeQuery();
} catch (SQLException e) {
System.out.println(e.getMessage());
}
但它仍然没有工作...任何帮助将是巨大的。
难道是事务回滚? –
你肯定会得到一个sql异常,因为executeQuery需要一个ResultSet,而你的sql语句是一个插入或更新。 –
看起来像MySQL语法,而不是PostgreSQL。 –