2010-04-09 21 views
6

Có thể ai đó vui lòng cho tôi liên kết về cách tạo truy vấn trong JDBC có tên biến trong câu lệnh WHERE hoặc viết một ví dụ, cụ thể hơn, mã của tôi trông giống như sau:Chỉ định tên biến trong mệnh đề QUERY WHERE trong JDBC

 private String getLastModified(String url) { 
    String lastModified = null; 
    ResultSet resultSet; 
String query = "select LastModified from CacheTable where " + 
    " URL.equals(url)"; 
    try { 
     resultSet = sqlStatement.executeQuery(query); 
} 

Bây giờ tôi cần cú pháp cho phép tôi trả về đối tượng ResultSet trong đó URL trong cacheTable bằng url từ đối số của phương thức.

nhờ

Trả lời

14

Cách đơn giản nhất sẽ là

String query = "select LastModified from CacheTable where url = '" + url +"'"; 

Bạn nên sử dụng các biến ràng buộc mặc dù:

String query = "select LastModified from CacheTable where url = ?"; 
prepStmt = conn.prepareStatement(query); 
prepStmt.setString(1, url); 
rs = prepStmt.executeQuery(); 
+0

Cảm ơn câu trả lời của bạn, các cách khác là gì và làm cách nào để liên kết các biến? – Noona

+0

oh .. Tôi nghĩ preparStatement chỉ dành cho các truy vấn cập nhật. cảm ơn bạn rất nhiều – Noona

+0

+1 Tôi đã quá chậm. Thêm cà phê! – Instantsoup

1

Để mang nó một bước xa hơn bạn thực sự cần sử dụng DBUtils từ apache-commons hoặc Sping JDBC khuôn khổ. Rất nhiều công việc của JDBC là rất đơn giản và dễ bị lỗi do số lượng các bước liên quan đến nó. Cả hai liên kết đều có các ví dụ làm việc để bạn bắt đầu.

Các thư viện trợ giúp này sẽ giúp cuộc sống của bạn thoải mái hơn nhiều :-).

1

Để xóa quan niệm sai lầm: JDBC và SQL là hai điều hoàn toàn khác nhau. Cơ sở dữ liệu chỉ hiểu ngôn ngữ SQL. Đó là tiêu chuẩn (bán) mà bạn có thể tìm hiểu here. JDBC chỉ là một API Java cho phép bạn thực thi ngôn ngữ SQL bằng cách sử dụng mã Java. Không có gì ít hơn, không có gì hơn. JDBC không phải là một cách viết Java bằng ngôn ngữ SQL. Nó chỉ là messenger giữa mã Java và cơ sở dữ liệu. Bạn có thể tìm hiểu JDBC here.

Điều đó nói rằng, có, PreparedStatement là cách để đi tới đặt giá trị trong truy vấn SQL. Nó không chỉ giúp thiết lập các đối tượng Java đầy đủ trong một chuỗi SQL bằng cách sử dụng các phương thức setXXX(), mà còn giúp bạn tránh được các cuộc tấn công SQL injection.

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