首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> JSP 程式設計 >> 關於JSP

JSP 連接 MySQL 資料庫完整指南:JDBC 直連與 JavaBean 封裝兩種模式

     編輯:關於JSP

前置準備

  • MySQL 建立測試表:CREATE TABLE username (uid VARCHAR(20), pwd VARCHAR(20)); 插入測試資料。
  • 下載 mysql-connector-java.jar 放入 WEB-INF/lib。

模式一:JSP 直連 JDBC

<%@ page import="java.sql.*" contentType="text/html;charset=gb2312" %>
<%
String url = "jdbc:mysql://localhost:3306/test?user=root&password=chfanwsp&useUnicode=true&characterEncoding=GB2312";
Class.forName("com.mysql.jdbc.Driver"); // 5.1+ 版本
Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery("SELECT * FROM username");
while (rs.next()) {
    out.println("用戶名: " + rs.getString("uid") + " 密碼: " + rs.getString("pwd") + "
"); } rs.close(); stmt.close(); conn.close(); %>

模式二:JavaBean 封裝連線 (DBConnMySql.java)

package conn;
import java.sql.*;
public class DBConnMySql {
    public Connection getConnToMySql(String server, String db, String user, String pass, String port) {
        String url = "jdbc:mysql://" + server + ":" + port + "/" + db
                + "?user=" + user + "&password=" + pass + "&useUnicode=true&characterEncoding=GB2312";
        try {
            Class.forName("com.mysql.jdbc.Driver");
            return DriverManager.getConnection(url);
        } catch (Exception e) { e.printStackTrace(); return null; }
    }
    public void close(Connection conn) {
        try { if (conn!=null) conn.close(); } catch (SQLException e) { e.printStackTrace(); }
    }
}

JSP 調用 Bean

<jsp:useBean id="DBConn" scope="page" class="conn.DBConnMySql"/>
<%
Connection conn = DBConn.getConnToMySql("localhost", "test", "root", "chfanwsp", "3306");
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet rs = stmt.executeQuery("SELECT * FROM username");
while (rs.next()) { out.println("用戶名: " + rs.getString("uid") + " 密碼: " + rs.getString("pwd") + "
"); } DBConn.close(conn); %>

最佳實務補充

  • 驅動類別:MySQL 8.0+ 使用 com.mysql.cj.jdbc.Driver,URL 需加 serverTimezone=UTC。
  • 連線池:生產環境必須使用 DataSource (HikariCP/DBCP2/Tomcat JDBC Pool) + JNDI 查找。
  • PreparedStatement:防止 SQL 注入,效能更佳。
  • 編碼統一:資料庫、表、連線、JSP 全部 UTF-8,避免亂碼。
  • 資源關閉:使用 try-with-resources (Java 7+) 自動關閉。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved