2012-01-09 20 views
9

Hãy cho tôi biết cách nào trong hai phương pháp, executeUpdatethực hiện là câu tốt nhất cho truy vấn chèn như insert into users(name, addr, city, sex, dob) values(?,?,?,?,?); Cả hai câu lệnh sẽ thực hiện truy vấn nhưng câu nào nên được sử dụng lý tưởng cho truy vấn chèn?Điều gì cần sử dụng: executeUpdate() hoặc execute()?

+0

có thể trùng lặp của [PreparedStatement thực hiện thành công trong oracle nhưng ném ngoại lệ trong Microsoft SQL] (http://stackoverflow.com/questions/8786911/preparedstatement-executing-successfully-in-oracle-but-throwing-exception-in- mic) – axtavt

+0

Bạn đã đọc javadoc cho mỗi cái chưa? Câu trả lời là ở đó. – skaffman

Trả lời

14

Giá trị trả lại khác nhau. ExecuteUpdate() trả về số hàng được cập nhật, có thể hữu ích khi chạy một câu lệnh cập nhật. Trong trường hợp của bạn, nó không cần thiết vì bạn biết bạn đang chèn bao nhiêu bản ghi. Bạn có thể sử dụng một trong hai.

+0

Vì vậy, không có lợi thế như vậy trong việc sử dụng hoặc là một trong số họ phải không? Trong trường hợp này, việc sử dụng phương pháp nào không quan trọng? –

+0

Phải. Nó không quan trọng. – Sjoerd

+0

Ok. Cảm ơn rất nhiều :) –

2

Về nguyên tắc, giá trị trả lại khác nhau. Tuy nhiên, tôi thấy rằng bằng cách sử dụng jConnect 3 để truy cập Sybase ASE 15.7, hàm execute() không chặn cho đến khi các trigger đã chạy và đóng PreparedStatement ngay lập tức sẽ ROLL BACK bản cập nhật. (Chèn một giấc ngủ 1 làm cho nó làm việc cho một truy vấn tôi đã thử.) Ngược lại, executeUpdate() không bị vấn đề này; nó xuất hiện để làm điều đúng, và không yêu cầu một giấc ngủ tùy ý trước khi đóng PreparedStatement.

Các vấn đề liên quan