1. 程式人生 > >Java Web開發7___通過資料庫連線池連線MySQL 資料庫

Java Web開發7___通過資料庫連線池連線MySQL 資料庫

本博文 給出一個使用資料庫連線池的例子, 將使用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