欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JSP連接MySQL數(shù)據(jù)庫(kù)詳細(xì)步驟

 更新時(shí)間:2023年01月07日 17:33:15   作者:Java?Fans  
這篇文章主要介紹了JSP連接MySQL數(shù)據(jù)庫(kù)詳細(xì)步驟,文章內(nèi)容詳細(xì)全面,且通過(guò)實(shí)例進(jìn)行講解,容易理解,需要的朋友可以參考下

動(dòng)態(tài)Web程序運(yùn)行在Web容器之中,利用Web容器可以使用JDBC技術(shù)來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)數(shù)據(jù)的CRUD操作,將數(shù)據(jù)表中的數(shù)據(jù)取出并結(jié)合JSP動(dòng)態(tài)生成HTML頁(yè)面進(jìn)行顯示。

JSP中的MySQL驅(qū)動(dòng)程序配置

本文開(kāi)發(fā)使用的是MySQL數(shù)據(jù)庫(kù),如果要想使用MySQL數(shù)據(jù)庫(kù),則一定要在Tomcat中進(jìn)行MySQL驅(qū)動(dòng)程序的配置。這個(gè)配置可以考慮將獲取到的MySQL的程序包 jar包 保存到你本地的Tomcat文件夾中的 lib 文件目錄中。

在Tomcat或者是項(xiàng)目之中所有的XML文件配置之后必須重新啟動(dòng)Tomcat才可以實(shí)現(xiàn)新的配置項(xiàng)加載,如果要在Tomcat中增加新的程序包,也必須重新啟動(dòng)后才能加載。

注意:

你可以下載官網(wǎng)提供的 jar 包:

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

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

下載后把 mysql-connector-java-<對(duì)應(yīng)版本>-bin.jar 拷貝到 tomcat 下 lib 目錄。

MySQL 8.0 以上版本的數(shù)據(jù)庫(kù)連接有所不同:

  • com.mysql.jdbc.Driver 更換為 com.mysql.cj.jdbc.Driver。
  • MySQL 8.0 以上版本不需要建立 SSL 連接的,需要顯示關(guān)閉。
  • 最后還需要設(shè)置 CST。

MySQL中創(chuàng)建表

既然要進(jìn)行數(shù)據(jù)的開(kāi)發(fā)操作,則首先一定要進(jìn)行數(shù)據(jù)庫(kù)的創(chuàng)建,本次創(chuàng)建一張手機(jī)信息表,并且配置好相應(yīng)的測(cè)試數(shù)據(jù)。

范例:創(chuàng)建手機(jī)信息表

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
)

插入一些數(shù)據(jù):

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

數(shù)據(jù)表顯示如下:

JSP中SELECT操作

如果要想使用JDBC實(shí)現(xiàn)數(shù)據(jù)表中的數(shù)據(jù)查詢,那么肯定要通過(guò)PreparedStatement接口實(shí)現(xiàn)查詢操作,本次僅僅是實(shí)現(xiàn)查詢?nèi)繑?shù)據(jù)的需要。

范例:查詢數(shù)據(jù)表所有數(shù)據(jù)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>  <%-- 定義頁(yè)面中文顯示編碼 --%>
<%@ page import="java.sql.*" %>  <%-- 導(dǎo)入開(kāi)發(fā)包 --%>
<html>
<head>
    <title>$Title$</title>
</head>
<body>
<%!
    public static final String DBDRIVER="com.mysql.jdbc.Driver";//驅(qū)動(dòng)程序
    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查詢語(yǔ)句
    Class.forName(DBDRIVER);//加載驅(qū)動(dòng)程序
    Connection conn=DriverManager.getConnection(DBURL,USER,PASSWORD);//連接數(shù)據(jù)庫(kù)
    PreparedStatement pstmt=conn.prepareStatement(sql);//操作PreparedStatement對(duì)象
    ResultSet rs=pstmt.executeQuery();//執(zhí)行查詢,并存入ResultSet結(jié)果集中
%>
<table border="1" width="100%">
    <thead><tr><td>編號(hào)</td><td>品牌</td><td>型號(hào)</td><td>出廠日期</td><td>價(jià)格</td><td>顏色</td><td>手機(jī)編碼</td></tr></thead>
    <tbody>
    <%
        while (rs.next()){//從ResultSet結(jié)果集中循環(huán)獲取數(shù)據(jù)
            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>
<%
    //關(guān)閉連接,如果不關(guān)閉就再也關(guān)閉不了,除非重新啟動(dòng)Tomcat
    conn.close();
%>
</body>
</html>

本程序在JSP中實(shí)現(xiàn)了MySQL數(shù)據(jù)庫(kù)的鏈接,隨后利用PreparedStatement語(yǔ)句實(shí)現(xiàn)了 phone 表的查詢,所有查詢的記錄將利用循環(huán)拼湊為HTML表格元素進(jìn)行展示。

執(zhí)行結(jié)果顯示如下:

實(shí)際上看到以上程序代碼執(zhí)行后,就可以非常清楚的發(fā)現(xiàn),整個(gè)JavaWEB開(kāi)發(fā)和Java的開(kāi)發(fā)基本上是沒(méi)有啥太大去別的,都是編寫(xiě)Java代碼,只要你Java基本功扎實(shí),那么這種程序?qū)嶋H上編寫(xiě)起來(lái)就非常容易了。

JavaBean 定義與使用

為了提高Java程序代碼的可重用性,往往會(huì)將一些重復(fù)執(zhí)行的代碼封裝在類結(jié)構(gòu)之中,而這樣的類也被稱為JavaBean。在IDEA中的Web開(kāi)發(fā)中,創(chuàng)建此封裝類的位置結(jié)構(gòu)圖如下:

第一步:創(chuàng)建db.properties文件

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

第二步:創(chuàng)建數(shù)據(jù)庫(kù)封裝類——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、注冊(cè)驅(qū)動(dòng)
            Class.forName(PROPERTIES.getProperty("driver"));
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    
    // 2、獲取連接方法
    public static Connection getConnection(){
        Connection connection = null;
        //2、獲取連接對(duì)象
        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();
        }
    }
}

最后通過(guò)JSP調(diào)用JavaBean數(shù)據(jù)庫(kù)操作封裝類

范例:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>  <%-- 定義頁(yè)面中文顯示編碼 --%>
<%@ page import="java.sql.*" %>  <%-- 導(dǎo)入開(kāi)發(fā)包 --%>
<%@ page import="cn.lqgx.insert.DBUtils" %>  <%-- 導(dǎo)入自定義的JavaBean數(shù)據(jù)庫(kù)操作封裝類 --%>
<html>
<head>
  <title>$Title$</title>
</head>
<body>

<%
  String sql = "select * from phone;";//SQL查詢語(yǔ)句
  Connection conn = DBUtils.getConnection();//連接數(shù)據(jù)庫(kù)
  PreparedStatement pstmt1 = conn.prepareStatement(sql);//操作PreparedStatement對(duì)象
  ResultSet rs = pstmt1.executeQuery();//執(zhí)行查詢,并存入ResultSet結(jié)果集中
%>
<table border="1" width="100%">
  <thead>
  <tr>
    <td>編號(hào)</td>
    <td>品牌</td>
    <td>型號(hào)</td>
    <td>出廠日期</td>
    <td>價(jià)格</td>
    <td>顏色</td>
    <td>手機(jī)編碼</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>
<%
  //關(guān)閉連接,如果不關(guān)閉就再也關(guān)閉不了,除非重新啟動(dòng)Tomcat
  conn.close();
%>
</body>
</html>

程序執(zhí)行結(jié)果如下:

本程序直接通過(guò)開(kāi)發(fā)的DBUTils工具類獲取了數(shù)據(jù)庫(kù)的連接對(duì)象,這樣就相當(dāng)于將所有的數(shù)據(jù)庫(kù)連接與關(guān)閉處理封裝在了一個(gè)JavaBean中,以實(shí)現(xiàn)代碼的可重用性,在調(diào)用時(shí)只需要通過(guò)page指令導(dǎo)入相關(guān)的程序類即可實(shí)現(xiàn)類中方法的調(diào)用。

到此這篇關(guān)于JSP連接MySQL數(shù)據(jù)庫(kù)詳細(xì)步驟的文章就介紹到這了,更多相關(guān)JSP連接MySQL數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MyEclipse連接MySQL數(shù)據(jù)庫(kù)報(bào)錯(cuò)解決辦法

    MyEclipse連接MySQL數(shù)據(jù)庫(kù)報(bào)錯(cuò)解決辦法

    我們現(xiàn)在一般網(wǎng)站都是利用的MySQL數(shù)據(jù)庫(kù)搭建網(wǎng)站的,但是在網(wǎng)上看到很多網(wǎng)友吐槽數(shù)據(jù)庫(kù)連接不上的問(wèn)題,現(xiàn)在我就結(jié)合相關(guān)資料向提出一些我個(gè)人的見(jiàn)解,希望對(duì)大家解決問(wèn)題有幫助
    2014-01-01
  • MySQL MyISAM默認(rèn)存儲(chǔ)引擎實(shí)現(xiàn)原理

    MySQL MyISAM默認(rèn)存儲(chǔ)引擎實(shí)現(xiàn)原理

    這篇文章主要介紹了MySQL MyISAM默認(rèn)存儲(chǔ)引擎實(shí)現(xiàn)原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Linux安裝Mysql8.0.20并配置主從復(fù)制(一主一從,雙主雙從)

    Linux安裝Mysql8.0.20并配置主從復(fù)制(一主一從,雙主雙從)

    本文主要介紹了Linux安裝Mysql8.0.20并配置主從復(fù)制,包含一主一從和雙主雙從,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • mysql?分組函數(shù)和分組查詢使用詳解

    mysql?分組函數(shù)和分組查詢使用詳解

    分組函數(shù)用作統(tǒng)計(jì)使用,又稱聚合函數(shù),統(tǒng)計(jì)函數(shù),組函數(shù),這篇文章主要介紹了mysql分組函數(shù)分組查詢的操作代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-01-01
  • idea 設(shè)置MySql主鍵的實(shí)現(xiàn)步驟

    idea 設(shè)置MySql主鍵的實(shí)現(xiàn)步驟

    在IDE開(kāi)發(fā)工具中也是可以使用mysql的,本文主要介紹了idea 設(shè)置MySql主鍵的實(shí)現(xiàn)步驟,文中通過(guò)圖文的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-03-03
  • mysql錯(cuò)誤代碼之1064的解決方案

    mysql錯(cuò)誤代碼之1064的解決方案

    這篇文章主要介紹了mysql錯(cuò)誤代碼之1064的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • mysql 8.0.11 macos10.13安裝配置方法圖文教程

    mysql 8.0.11 macos10.13安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql 8.0.11 macos10.13安裝配置方法圖文教程,mysql數(shù)據(jù)庫(kù)安裝及配置環(huán)境變量,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • MySQL中create table as 與like的區(qū)別分析

    MySQL中create table as 與like的區(qū)別分析

    這篇文章主要介紹了MySQL中create table as 與like的區(qū)別,結(jié)合實(shí)例分析了二者在使用中的具體區(qū)別與主要用途,需要的朋友可以參考下
    2016-01-01
  • MySQL對(duì)于各種鎖的概念理解

    MySQL對(duì)于各種鎖的概念理解

    今天小編就為大家分享一篇關(guān)于MySQL對(duì)于各種鎖的概念理解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • mysql中插入隨機(jī)字符串?dāng)?shù)據(jù)及常見(jiàn)問(wèn)題說(shuō)明

    mysql中插入隨機(jī)字符串?dāng)?shù)據(jù)及常見(jiàn)問(wèn)題說(shuō)明

    這篇文章主要介紹了mysql中插入隨機(jī)字符串?dāng)?shù)據(jù)及常見(jiàn)問(wèn)題說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10

最新評(píng)論