我将select查询传递给预准备语句以获取记录列表。 问题是如果我将查询附加到insert或truncate table,则预准备语句将执行所有查询。 例子
SELECT INDEX.*
,item.*
FROM cust_sales_order_index AS INDEX
INNER JOIN (
SELECT pkid AS item_pkid
,index_id
,item_code
,NAME
,quantity AS item_quantity
FROM cust_sales_order_item
) AS item
ON INDEX.pkid = item.index_id
WHERE (pkid = 100001);
CREATE TABLE temp_cust_sales_order_index_temp (LIKE cust_sales_order_index);
WITH temp1
AS (
DELETE
FROM cust_sales_order_index returning *
)
INSERT INTO temp_cust_sales_order_index_temp (SELECT * FROM temp1);-- ) ORDER BY time_update
如何限制sql查询只执行select查询,或者至少在Java中只执行一个查询。
答案 0 :(得分:0)
我想我是以错误的方式使用预备语句。这是预备语句中使用的select的一个例子。
String selectSQL = "SELECT USER_ID, USERNAME FROM DBUSER WHERE USER_ID = ?";
PreparedStatement preparedStatement = dbConnection.prepareStatement(selectSQL);
preparedStatement.setInt(1, 1001);
ResultSet rs = preparedStatement.executeQuery(selectSQL )
答案 1 :(得分:0)
我认为这是制定交易驱动方法的不错选择。
一旦收到连接,请确保禁用自动提交属性(默认情况下,如果我没有弄错,则启用它)
然后,在将每个语句传递给连接后,创建connection.commit()
,然后,更改将被传递到数据库。