JSP连接MySQL数据库详细步骤

作者:Java?Fans 时间:2024-01-25 07:03:49 

动态Web程序运行在Web容器之中,利用Web容器可以使用JDBC技术来实现数据库数据的CRUD操作,将数据表中的数据取出并结合JSP动态生成HTML页面进行显示。

JSP连接MySQL数据库详细步骤

JSP中的MySQL驱动程序配置

本文开发使用的是MySQL数据库,如果要想使用MySQL数据库,则一定要在Tomcat中进行MySQL驱动程序的配置。这个配置可以考虑将获取到的MySQL的程序包 jar包 保存到你本地的Tomcat文件夹中的 lib 文件目录中。

JSP连接MySQL数据库详细步骤

在Tomcat或者是项目之中所有的XML文件配置之后必须重新启动Tomcat才可以实现新的配置项加载,如果要在Tomcat中增加新的程序包,也必须重新启动后才能加载。

注意: 

你可以下载官网提供的 jar 包:

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

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

JSP连接MySQL数据库详细步骤

下载后把 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连接MySQL数据库详细步骤

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表格元素进行展示。

执行结果显示如下:

JSP连接MySQL数据库详细步骤

实际上看到以上程序代码执行后,就可以非常清楚的发现,整个JavaWEB开发和Java的开发基本上是没有啥太大去别的,都是编写Java代码,只要你Java基本功扎实,那么这种程序实际上编写起来就非常容易了。

JavaBean 定义与使用

为了提高Java程序代码的可重用性,往往会将一些重复执行的代码封装在类结构之中,而这样的类也被称为JavaBean。在IDEA中的Web开发中,创建此封装类的位置结构图如下:

JSP连接MySQL数据库详细步骤

第一步:创建db.properties文件

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

第二步:创建数据库封装类&mdash;&mdash;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>

程序执行结果如下:

JSP连接MySQL数据库详细步骤

本程序直接通过开发的DBUTils工具类获取了数据库的连接对象,这样就相当于将所有的数据库连接与关闭处理封装在了一个JavaBean中,以实现代码的可重用性,在调用时只需要通过page指令导入相关的程序类即可实现类中方法的调用。

来源:https://blog.csdn.net/hh867308122/article/details/128198052

标签:MySQL,连接,Java
0
投稿

猜你喜欢

  • sql与mysql有哪些区别

    2024-01-23 16:21:16
  • 详解python opencv、scikit-image和PIL图像处理库比较

    2021-11-10 02:24:13
  • Django框架获取form表单数据方式总结

    2022-08-21 14:24:29
  • javascript怎么禁用浏览器后退按钮

    2024-02-25 08:49:45
  • Python3.10接入ChatGPT实现逐句回答流式返回

    2022-03-04 04:45:30
  • Keras自定义IOU方式

    2022-12-24 07:48:27
  • 说说CSS+Div布局中的结构与表现

    2008-06-05 18:22:00
  • 详解如何在vue项目中使用layui框架及采坑

    2024-04-09 10:58:35
  • Python使用future处理并发问题方案详解

    2022-12-10 18:16:53
  • 初学python数组的处理代码

    2023-10-14 19:30:19
  • Python and、or以及and-or语法总结

    2021-11-08 01:52:36
  • js与jquery获取父级元素,子级元素,兄弟元素的实现方法

    2024-05-11 09:43:01
  • python爬虫爬取微博评论案例详解

    2022-12-23 13:31:53
  • python重试装饰器的简单实现方法

    2022-07-15 12:54:10
  • Django基础之Model操作步骤(介绍)

    2022-04-12 12:17:50
  • 浅析Python3爬虫登录模拟

    2023-10-10 18:15:02
  • Python有序字典简单实现方法示例

    2021-05-05 19:25:58
  • 网站设计应当让用户选,别让用户想

    2008-03-19 12:01:00
  • python调用cmd命令行制作刷博器

    2023-07-26 15:18:35
  • 后端算法题解LeetCode前缀和示例详解

    2023-03-16 17:31:54
  • asp之家 网络编程 m.aspxhome.com