上一篇博客,可以看出每一個jsp頁面都存在數據庫訪問代碼;將連接代碼和SQL語句暴露在頁面中,不利於數據庫安全;連接代碼需要重復書寫,不利於代碼重用,影響程序復用性和軟件的靈活性。因此,將數據庫訪問代碼利用類封裝起來,可以很好的避免這些問題。
在Java Resources/src目錄db_admin包下新建DBCon.java類,用於封裝數據庫的連接。
DBCon類:
package db_admin; import java.sql.*; public class DBCon { private String dbDriver = "com.mysql.jdbc.Driver";//定義連接數據庫相關變量 private String dbUrl = "jdbc:mysql://localhost:3306/book?useUnicode=true&characterEncoding=utf-8"; private String dbUser = "root"; private String dbPwd = "123456"; private Connection conn = null; public Connection getConnection() {//完成Mysql數據庫驅動的加載后進行數據庫連接 try { Class.forName(dbDriver); conn = DriverManager.getConnection(dbUrl,dbUser,dbPwd); }catch(ClassNotFoundException e) { e.printStackTrace(); }catch(SQLException e) { e.printStackTrace(); } return conn; } public ResultSet doQurey(String sql) {//實現查詢操作 ResultSet rs = null; conn = this.getConnection(); try { Statement stmt = conn.createStatement(); rs = stmt.executeQuery(sql); }catch(Exception e) { e.printStackTrace(); } return rs; } public int doUpdate(String sql) {//實現更新操作 int res = 0; conn = this.getConnection(); try { Statement stmt = conn.createStatement(); res = stmt.executeUpdate(sql); }catch(Exception e) { e.printStackTrace(); } return res; } public void close() throws SQLException{ try { conn.close();//關閉相關對象,釋放內存 }catch(Exception e) { e.printStackTrace(); } } }
相應的查詢代碼更改為:
<%@page import="java.sql.*,db_admin.*"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>查看數據庫表中信息</title> </head> <body> <% DBCon dbc = new DBCon();//創建DBCon對象dbc,調用DBCon的構造函數進行數據庫連接 String sql = "select * from admin order by id"; ResultSet rs = dbc.doQurey(sql); %> <table border="1"> <%while(rs.next()){ %> <tr> <td><%= rs.getInt("id") %></td> <td><%= rs.getString("username") %></td> <td><%= rs.getString("password") %></td> <td><a href="do_delete.jsp?id=<%= rs.getInt("id")%>">刪除</a></td> <td><a href="do_edit.jsp?id=<%= rs.getInt("id")%>">編輯</a></td> </tr> <%} %> </table> <a href="addAdmin.jsp">增加用戶</a> </body> </html>
其余的增刪改查代碼(上篇:腳本方式實現數據庫的增刪改查)做相應的改動,大大提高了性能和效率。