Java Web開發7___通過資料庫連線池連線MySQL 資料庫
阿新 • • 發佈:2019-01-06
本博文 給出一個使用資料庫連線池的例子, 將使用webdb 資料來源 獲取一個MySQL 資料庫連線,並查詢其中的t_dirctionary表, 最後將查詢結果顯示在客戶端瀏覽器。
以下ViewDictionary 類 演示了怎麼樣 使用資料庫連線池獲取資料庫連線, 程式碼如下:
import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ViewDictionary extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try{ javax.naming.Context ctx = new javax.naming.InitialContext(); // 根據webdb資料來源獲得DataSource物件 javax.sql.DataSource ds = (javax.sql.DataSource) ctx .lookup("java:/comp/env/jdbc/webdb"); Connection conn = ds.getConnection(); // 執行SQL語句 PreparedStatement pstmt = conn .prepareStatement("SELECT * FROM t_dictionary"); ResultSet rs = pstmt.executeQuery(); StringBuilder table = new StringBuilder(); table.append("<table border='1'>"); table.append("<tr><td>書名</td><td>價格</td></tr>"); while (rs.next()){
// 生成查詢結果 table.append("<tr><td>" + rs.getString("english") + "</td><td>"); table.append(rs.getString("chinese") + "</td></tr>"); } table.append("</table>"); out.println(table.toString()); // 輸出查詢結果 pstmt.close(); // 關閉PreparedStatement物件 }catch (Exception e){ out.println(e.getMessage()); } } }
1. 要從資料來源 中獲得資料庫連線物件, 需要使用javax.naming.Context 的lookup方法。
2. 在應用程式中通過資料來源連線池連線資料庫時,除了通過資料來源獲取資料庫 連線的步驟, 其他步驟 和直接使用 JDBC操作資料庫是完全一樣的.
到現在,需要建立資料庫webdb, 建立資料表t_dictionary, 並且往該表中插入資料。
要檢視上述程式碼的效果, 可以在瀏覽器的位址列中輸入如下url:
http://localhost:8080/webdemo/servlet/ViewDictionary