首頁 > 軟體

JSP連線MySQL資料庫詳細步驟

2023-09-05 18:14:35

動態Web程式執行在Web容器之中,利用Web容器可以使用JDBC技術來實現資料庫資料的CRUD操作,將資料表中的資料取出並結合JSP動態生成HTML頁面進行顯示。

JSP中的MySQL驅動程式設定

本文開發使用的是MySQL資料庫,如果要想使用MySQL資料庫,則一定要在Tomcat中進行MySQL驅動程式的設定。這個設定可以考慮將獲取到的MySQL的程式包 jar包 儲存到你原生的Tomcat資料夾中的 lib 檔案目錄中。

在Tomcat或者是專案之中所有的XML檔案設定之後必須重新啟動Tomcat才可以實現新的設定項載入,如果要在Tomcat中增加新的程式包,也必須重新啟動後才能載入。

注意:

你可以下載官網提供的 jar 包:

MySQL 5 版本:mysql-connector-java-5.1.0-bin.jar

MySQL 8 版本:mysql-connector-java-8.0.19.jar

下載後把 mysql-connector-java-<對應版本>-bin.jar 拷貝到 tomcat 下 lib 目錄。

MySQL 8.0 以上版本的資料庫連線有所不同:

  • com.mysql.jdbc.Driver 更換為 com.mysql.cj.jdbc.Driver。
  • MySQL 8.0 以上版本不需要建立 SSL 連線的,需要顯示關閉。
  • 最後還需要設定 CST。

MySQL中建立表

既然要進行資料的開發操作,則首先一定要進行資料庫的建立,本次建立一張手機資訊表,並且設定好相應的測試資料。

範例:建立手機資訊表

CREATE TABLE phone(
`pid` INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`brand` VARCHAR(20) NOT NULL,
`type` VARCHAR(20) NOT NULL,
`birthday` DATE NOT NULL,
`price` DOUBLE NOT NULL,
`color` VARCHAR(20) NOT NULL,
`card` VARCHAR(20) NOT NULL UNIQUE
)

插入一些資料:

INSERT INTO phone VALUES(1001,'華為','P30','2018-10-10',3500,'白色','HB1214512412');
INSERT INTO phone VALUES(1002,'小米','10Plus','2020-02-02',3222,'藍色','XM5765424335');
INSERT INTO phone VALUES(1003,'榮耀','30Pro','2020-08-22',2888,'白色','RY4815645687');

資料表顯示如下:

JSP中SELECT操作

如果要想使用JDBC實現資料表中的資料查詢,那麼肯定要通過PreparedStatement介面實現查詢操作,本次僅僅是實現查詢全部資料的需要。

範例:查詢資料表所有資料

<%@ page contentType="text/html;charset=UTF-8" language="java" %>  <%-- 定義頁面中文顯示編碼 --%>
<%@ page import="java.sql.*" %>  <%-- 匯入開發包 --%>
<html>
<head>
    <title>$Title$</title>
</head>
<body>
<%!
    public static final String DBDRIVER="com.mysql.jdbc.Driver";//驅動程式
    public static final String DBURL="jdbc:mysql://localhost:3306/java221804";//連線地址
    public static final String USER="root";//使用者名稱
    public static final String PASSWORD="huanghuang";//密碼
%>
<%
    String sql="select * from phone;";//SQL查詢語句
    Class.forName(DBDRIVER);//載入驅動程式
    Connection conn=DriverManager.getConnection(DBURL,USER,PASSWORD);//連線資料庫
    PreparedStatement pstmt=conn.prepareStatement(sql);//操作PreparedStatement物件
    ResultSet rs=pstmt.executeQuery();//執行查詢,並存入ResultSet結果集中
%>
<table border="1" width="100%">
    <thead><tr><td>編號</td><td>品牌</td><td>型號</td><td>出廠日期</td><td>價格</td><td>顏色</td><td>手機編碼</td></tr></thead>
    <tbody>
    <%
        while (rs.next()){//從ResultSet結果集中迴圈獲取資料
            int pid=rs.getInt(1);
            String brand=rs.getString(2);
            String type=rs.getString(3);
            Date birthday=rs.getDate(4);
            double price=rs.getDouble(5);
            String color=rs.getString(6);
            String card=rs.getString(7);
     %>
    <tr>
        <td><%=pid%></td>
        <td><%=brand%></td>
        <td><%=type%></td>
        <td><%=birthday%></td>
        <td><%=price%></td>
        <td><%=color%></td>
        <td><%=card%></td>
    </tr>
    <%
        }
    %>
    </tbody>
</table>
<%
    //關閉連線,如果不關閉就再也關閉不了,除非重新啟動Tomcat
    conn.close();
%>
</body>
</html>

本程式在JSP中實現了MySQL資料庫的連結,隨後利用PreparedStatement語句實現了 phone 表的查詢,所有查詢的記錄將利用迴圈拼湊為HTML表格元素進行展示。

執行結果顯示如下:

實際上看到以上程式程式碼執行後,就可以非常清楚的發現,整個JavaWEB開發和Java的開發基本上是沒有啥太大去別的,都是編寫Java程式碼,只要你Java基本功紮實,那麼這種程式實際上編寫起來就非常容易了。

JavaBean 定義與使用

為了提高Java程式程式碼的可重用性,往往會將一些重複執行的程式碼封裝在類結構之中,而這樣的類也被稱為JavaBean。在IDEA中的Web開發中,建立此封裝類的位置結構圖如下:

第一步:建立db.properties檔案

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/java221804
username=root
password=huanghuang

第二步:建立資料庫封裝類——DBUtils類

package cn.lqgx.insert;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class DBUtils {
    private static final Properties PROPERTIES =new Properties();
    static{
        InputStream is = DBUtils.class.getResourceAsStream("/db.properties");
        try {
            PROPERTIES.load(is);
            //1、註冊驅動
            Class.forName(PROPERTIES.getProperty("driver"));
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    
    // 2、獲取連線方法
    public static Connection getConnection(){
        Connection connection = null;
        //2、獲取連線物件
        try {
            connection=DriverManager.getConnection(PROPERTIES.getProperty("url"), PROPERTIES.getProperty("username"), PROPERTIES.getProperty("password"));
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }
    
    
    // 3、釋放資源方法
    public static void closeAll(ResultSet resultSet, Statement statement,
                                Connection connection) {
        try {
            if (resultSet != null) {
                resultSet.close();
            }
            if(statement!=null){
                statement.close();
            }
            if(connection!=null){
                connection.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

最後通過JSP呼叫JavaBean資料庫操作封裝類

範例:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>  <%-- 定義頁面中文顯示編碼 --%>
<%@ page import="java.sql.*" %>  <%-- 匯入開發包 --%>
<%@ page import="cn.lqgx.insert.DBUtils" %>  <%-- 匯入自定義的JavaBean資料庫操作封裝類 --%>
<html>
<head>
  <title>$Title$</title>
</head>
<body>

<%
  String sql = "select * from phone;";//SQL查詢語句
  Connection conn = DBUtils.getConnection();//連線資料庫
  PreparedStatement pstmt1 = conn.prepareStatement(sql);//操作PreparedStatement物件
  ResultSet rs = pstmt1.executeQuery();//執行查詢,並存入ResultSet結果集中
%>
<table border="1" width="100%">
  <thead>
  <tr>
    <td>編號</td>
    <td>品牌</td>
    <td>型號</td>
    <td>出廠日期</td>
    <td>價格</td>
    <td>顏色</td>
    <td>手機編碼</td>
  </tr>
  </thead>
  <tbody>
  <%
      int pid = rs.getInt(1);
      String brand = rs.getString(2);
      String type = rs.getString(3);
      Date birthday = rs.getDate(4);
      double price = rs.getDouble(5);
      String color = rs.getString(6);
      String card = rs.getString(7);

  %>
  <tr>
    <td><%=pid%>
    </td>
    <td><%=brand%>
    </td>
    <td><%=type%>
    </td>
    <td><%=birthday%>
    </td>
    <td><%=price%>
    </td>
    <td><%=color%>
    </td>
    <td><%=card%>
    </td>
  </tr>
  <%
    }
  %>
  </tbody>
</table>
<%
  //關閉連線,如果不關閉就再也關閉不了,除非重新啟動Tomcat
  conn.close();
%>
</body>
</html>

程式執行結果如下:

本程式直接通過開發的DBUTils工具類獲取了資料庫的連線物件,這樣就相當於將所有的資料庫連線與關閉處理封裝在了一個JavaBean中,以實現程式碼的可重用性,在呼叫時只需要通過page指令匯入相關的程式類即可實現類中方法的呼叫。

到此這篇關於JSP連線MySQL資料庫詳細步驟的文章就介紹到這了,更多相關JSP連線MySQL資料庫內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com