设为首页收藏本站
网站公告 | 这是第一条公告
     

 找回密码
 立即注册
缓存时间07 现在时间07 缓存数据 给自己一个目标,给自己一个希望,给自己一份爱、一份温暖,只为今天快乐,不为昨天烦恼,自己照顾好自己,我的朋友。

给自己一个目标,给自己一个希望,给自己一份爱、一份温暖,只为今天快乐,不为昨天烦恼,自己照顾好自己,我的朋友。

查看: 1328|回复: 3

JSP连接MySQL数据库详细步骤

[复制链接]

  离线 

TA的专栏

  • 打卡等级:偶尔看看
  • 打卡总天数:14
  • 打卡月天数:0
  • 打卡总奖励:180
  • 最近打卡:2025-03-21 06:00:50
等级头衔

等級:晓枫资讯-上等兵

在线时间
0 小时

积分成就
威望
0
贡献
333
主题
277
精华
0
金钱
1098
积分
640
注册时间
2023-2-11
最后登录
2025-5-31

发表于 2023-6-13 10:12:09 | 显示全部楼层 |阅读模式
动态Web程序运行在Web容器之中,利用Web容器可以使用JDBC技术来实现数据库数据的CRUD操作,将数据表中的数据取出并结合JSP动态生成HTML页面进行显示。
111305lnzaiau6zzez6e1f.png


JSP中的MySQL驱动程序配置

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

在Tomcat或者是项目之中所有的XML文件配置之后必须重新启动Tomcat才可以实现新的配置项加载,如果要在Tomcat中增加新的程序包,也必须重新启动后才能加载。
  1. <strong>注意:</strong> 
  2. 你可以下载官网提供的 jar 包:
  3. MySQL 5 版本:mysql-connector-java-5.1.0-bin.jar
  4. MySQL 8 版本:mysql-connector-java-8.0.19.jar 
  5. <p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202301/20230107123335103.jpg" />
  6. 下载后把 mysql-connector-java-<对应版本>-bin.jar 拷贝到 tomcat 下 lib 目录。
  7. MySQL 8.0 以上版本的数据库连接有所不同:
  8. <ul><li><span style="color:#c0392b">com.mysql.jdbc.Driver 更换为 com.mysql.cj.jdbc.Driver。</span></li><li>MySQL 8.0 以上版本不需要建立 SSL 连接的,需要显示关闭。</li><li>最后还需要设置 CST。</li></ul>
复制代码
MySQL中创建表

既然要进行数据的开发操作,则首先一定要进行数据库的创建,本次创建一张手机信息表,并且配置好相应的测试数据。
范例:创建手机信息表
  1. CREATE TABLE phone(
  2. `pid` INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
  3. `brand` VARCHAR(20) NOT NULL,
  4. `type` VARCHAR(20) NOT NULL,
  5. `birthday` DATE NOT NULL,
  6. `price` DOUBLE NOT NULL,
  7. `color` VARCHAR(20) NOT NULL,
  8. `card` VARCHAR(20) NOT NULL UNIQUE
  9. )
复制代码
插入一些数据:
  1. INSERT INTO phone VALUES(1001,'华为','P30','2018-10-10',3500,'白色','HB1214512412');
  2. INSERT INTO phone VALUES(1002,'小米','10Plus','2020-02-02',3222,'蓝色','XM5765424335');
  3. INSERT INTO phone VALUES(1003,'荣耀','30Pro','2020-08-22',2888,'白色','RY4815645687');
复制代码
数据表显示如下:
111306e13s33xudxi649rd.png


JSP中SELECT操作

如果要想使用JDBC实现数据表中的数据查询,那么肯定要通过PreparedStatement接口实现查询操作,本次仅仅是实现查询全部数据的需要。
范例:查询数据表所有数据
  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>  <%-- 定义页面中文显示编码 --%>
  2. <%@ page import="java.sql.*" %>  <%-- 导入开发包 --%>
  3. <html>
  4. <head>
  5.     <title>$Title$</title>
  6. </head>
  7. <body>
  8. <%!
  9.     public static final String DBDRIVER="com.mysql.jdbc.Driver";//驱动程序
  10.     public static final String DBURL="jdbc:mysql://localhost:3306/java221804";//连接地址
  11.     public static final String USER="root";//用户名
  12.     public static final String PASSWORD="huanghuang";//密码
  13. %>
  14. <%
  15.     String sql="select * from phone;";//SQL查询语句
  16.     Class.forName(DBDRIVER);//加载驱动程序
  17.     Connection conn=DriverManager.getConnection(DBURL,USER,PASSWORD);//连接数据库
  18.     PreparedStatement pstmt=conn.prepareStatement(sql);//操作PreparedStatement对象
  19.     ResultSet rs=pstmt.executeQuery();//执行查询,并存入ResultSet结果集中
  20. %>
  21. <table border="1" width="100%">
  22.     <thead><tr><td>编号</td><td>品牌</td><td>型号</td><td>出厂日期</td><td>价格</td><td>颜色</td><td>手机编码</td></tr></thead>
  23.     <tbody>
  24.     <%
  25.         while (rs.next()){//从ResultSet结果集中循环获取数据
  26.             int pid=rs.getInt(1);
  27.             String brand=rs.getString(2);
  28.             String type=rs.getString(3);
  29.             Date birthday=rs.getDate(4);
  30.             double price=rs.getDouble(5);
  31.             String color=rs.getString(6);
  32.             String card=rs.getString(7);
  33.      %>
  34.     <tr>
  35.         <td><%=pid%></td>
  36.         <td><%=brand%></td>
  37.         <td><%=type%></td>
  38.         <td><%=birthday%></td>
  39.         <td><%=price%></td>
  40.         <td><%=color%></td>
  41.         <td><%=card%></td>
  42.     </tr>
  43.     <%
  44.         }
  45.     %>
  46.     </tbody>
  47. </table>
  48. <%
  49.     //关闭连接,如果不关闭就再也关闭不了,除非重新启动Tomcat
  50.     conn.close();
  51. %>
  52. </body>
  53. </html>
复制代码
本程序在JSP中实现了MySQL数据库的链接,随后利用PreparedStatement语句实现了 phone 表的查询,所有查询的记录将利用循环拼凑为HTML表格元素进行展示。
执行结果显示如下:
111306qiy4kqqbgkj4pspy.png

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

JavaBean 定义与使用

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

第一步:创建db.properties文件
  1. driver=com.mysql.jdbc.Driver
  2. url=jdbc:mysql://127.0.0.1:3306/java221804
  3. username=root
  4. password=huanghuang
复制代码
第二步:创建数据库封装类——DBUtils类
  1. package cn.lqgx.insert;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.sql.Connection;
  5. import java.sql.DriverManager;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8. import java.sql.Statement;
  9. import java.util.Properties;
  10. public class DBUtils {
  11.     private static final Properties PROPERTIES =new Properties();
  12.     static{
  13.         InputStream is = DBUtils.class.getResourceAsStream("/db.properties");
  14.         try {
  15.             PROPERTIES.load(is);
  16.             //1、注册驱动
  17.             Class.forName(PROPERTIES.getProperty("driver"));
  18.         } catch (IOException e) {
  19.             e.printStackTrace();
  20.         } catch (ClassNotFoundException e) {
  21.             e.printStackTrace();
  22.         }
  23.     }
  24.    
  25.     // 2、获取连接方法
  26.     public static Connection getConnection(){
  27.         Connection connection = null;
  28.         //2、获取连接对象
  29.         try {
  30.             connection=DriverManager.getConnection(PROPERTIES.getProperty("url"), PROPERTIES.getProperty("username"), PROPERTIES.getProperty("password"));
  31.         } catch (SQLException e) {
  32.             e.printStackTrace();
  33.         }
  34.         return connection;
  35.     }
  36.    
  37.    
  38.     // 3、释放资源方法
  39.     public static void closeAll(ResultSet resultSet, Statement statement,
  40.                                 Connection connection) {
  41.         try {
  42.             if (resultSet != null) {
  43.                 resultSet.close();
  44.             }
  45.             if(statement!=null){
  46.                 statement.close();
  47.             }
  48.             if(connection!=null){
  49.                 connection.close();
  50.             }
  51.         } catch (SQLException e) {
  52.             e.printStackTrace();
  53.         }
  54.     }
  55. }
复制代码
最后通过JSP调用JavaBean数据库操作封装类
范例:
  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>  <%-- 定义页面中文显示编码 --%>
  2. <%@ page import="java.sql.*" %>  <%-- 导入开发包 --%>
  3. <%@ page import="cn.lqgx.insert.DBUtils" %>  <%-- 导入自定义的JavaBean数据库操作封装类 --%>
  4. <html>
  5. <head>
  6.   <title>$Title$</title>
  7. </head>
  8. <body>

  9. <%
  10.   String sql = "select * from phone;";//SQL查询语句
  11.   Connection conn = DBUtils.getConnection();//连接数据库
  12.   PreparedStatement pstmt1 = conn.prepareStatement(sql);//操作PreparedStatement对象
  13.   ResultSet rs = pstmt1.executeQuery();//执行查询,并存入ResultSet结果集中
  14. %>
  15. <table border="1" width="100%">
  16.   <thead>
  17.   <tr>
  18.     <td>编号</td>
  19.     <td>品牌</td>
  20.     <td>型号</td>
  21.     <td>出厂日期</td>
  22.     <td>价格</td>
  23.     <td>颜色</td>
  24.     <td>手机编码</td>
  25.   </tr>
  26.   </thead>
  27.   <tbody>
  28.   <%
  29.       int pid = rs.getInt(1);
  30.       String brand = rs.getString(2);
  31.       String type = rs.getString(3);
  32.       Date birthday = rs.getDate(4);
  33.       double price = rs.getDouble(5);
  34.       String color = rs.getString(6);
  35.       String card = rs.getString(7);

  36.   %>
  37.   <tr>
  38.     <td><%=pid%>
  39.     </td>
  40.     <td><%=brand%>
  41.     </td>
  42.     <td><%=type%>
  43.     </td>
  44.     <td><%=birthday%>
  45.     </td>
  46.     <td><%=price%>
  47.     </td>
  48.     <td><%=color%>
  49.     </td>
  50.     <td><%=card%>
  51.     </td>
  52.   </tr>
  53.   <%
  54.     }
  55.   %>
  56.   </tbody>
  57. </table>
  58. <%
  59.   //关闭连接,如果不关闭就再也关闭不了,除非重新启动Tomcat
  60.   conn.close();
  61. %>
  62. </body>
  63. </html>
复制代码
程序执行结果如下:
111306xq509qfp6zpq3g7s.png

本程序直接通过开发的DBUTils工具类获取了数据库的连接对象,这样就相当于将所有的数据库连接与关闭处理封装在了一个JavaBean中,以实现代码的可重用性,在调用时只需要通过page指令导入相关的程序类即可实现类中方法的调用。
到此这篇关于JSP连接MySQL数据库详细步骤的文章就介绍到这了,更多相关JSP连接MySQL数据库内容请搜索晓枫资讯以前的文章或继续浏览下面的相关文章希望大家以后多多支持晓枫资讯!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
111305p4i6qtzm1t89it2m.jpeg
晓枫资讯-科技资讯社区-免责声明
免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
      1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
      2、管理员及版主有权在不事先通知或不经作者准许的情况下删除其在本社区所发表的文章。
      3、本社区的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,举报反馈:点击这里给我发消息进行删除处理。
      4、本社区一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
      5、以上声明内容的最终解释权归《晓枫资讯-科技资讯社区》所有。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
17
积分
14
注册时间
2022-12-27
最后登录
2022-12-27

发表于 2025-3-19 04:53:16 | 显示全部楼层
感谢楼主分享。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
11
积分
2
注册时间
2024-8-27
最后登录
2024-8-27

发表于 2025-4-8 11:06:34 | 显示全部楼层
路过,支持一下
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
22
积分
24
注册时间
2022-12-27
最后登录
2022-12-27

发表于 7 天前 | 显示全部楼层
感谢楼主,顶。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~
严禁发布广告,淫秽、色情、赌博、暴力、凶杀、恐怖、间谍及其他违反国家法律法规的内容。!晓枫资讯-社区
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1楼
2楼
3楼
4楼

手机版|晓枫资讯--科技资讯社区 本站已运行

CopyRight © 2022-2025 晓枫资讯--科技资讯社区 ( BBS.yzwlo.com ) . All Rights Reserved .

晓枫资讯--科技资讯社区

本站内容由用户自主分享和转载自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

如有侵权、违反国家法律政策行为,请联系我们,我们会第一时间及时清除和处理! 举报反馈邮箱:点击这里给我发消息

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表