文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

JSP连接MySQL数据库

2023-08-16 20:30

关注

在这里插入图片描述

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:JAVA开发者成长之路
✨特色专栏:国学周更-心性养成之路
🥭本文内容:JSP连接MySQL数据库
更多内容点击👇
       一文带你掌握JSP基础知识


  动态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.*" %>  <%-- 导入开发包 --%>    $Title$<%!    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结果集中%>
<% 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); %> <% } %>
编号品牌型号出厂日期价格颜色手机编码
<%=pid%> <%=brand%> <%=type%> <%=birthday%> <%=price%> <%=color%> <%=card%>
<% //关闭连接,如果不关闭就再也关闭不了,除非重新启动Tomcat conn.close();%>

  本程序在JSP中实现了MySQL数据库的链接,随后利用PreparedStatement语句实现了 phone 表的查询,所有查询的记录将利用循环拼凑为HTML表格元素进行展示。

执行结果显示如下:

在这里插入图片描述

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

JavaBean 定义与使用

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

在这里插入图片描述

创建db.properties文件

driver=com.mysql.jdbc.Driverurl=jdbc:mysql://127.0.0.1:3306/java221804username=rootpassword=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数据库操作封装类 --%>  $Title$<%  String sql = "select * from phone;";//SQL查询语句  Connection conn = DBUtils.getConnection();//连接数据库  PreparedStatement pstmt1 = conn.prepareStatement(sql);//操作PreparedStatement对象  ResultSet rs = pstmt1.executeQuery();//执行查询,并存入ResultSet结果集中%>
<% 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); %> <% } %>
编号 品牌 型号 出厂日期 价格 颜色 手机编码
<%=pid%> <%=brand%> <%=type%> <%=birthday%> <%=price%> <%=color%> <%=card%>
<% //关闭连接,如果不关闭就再也关闭不了,除非重新启动Tomcat conn.close();%>

程序执行结果如下:

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


  码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

在这里插入图片描述

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯