✅作者简介:定制开发热爱国学的者,定制开发修心和技术同步精进。
🍎个人主页:
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:
✨特色专栏:
🥭本文内容:JSP连接MySQL数据库
定制开发更多内容点击👇
文章目录
动态Web定制开发程序运行在Web容器之中,利用Web定制开发容器可以使用JDBC定制开发技术来实现数据库数据的CRUD操作,定制开发将数据表中的数据取出并结合JSP动态生成HTML定制开发页面进行显示。
JSP定制开发中的程序配置
定制开发本文开发使用的是MySQL数据库,定制开发如果要想使用MySQL数据库,定制开发则一定要在Tomcat中进行MySQL定制开发驱动程序的配置。定制开发这个配置可以考虑将获取到的MySQL的程序包 jar包 定制开发保存到你本地的Tomcat文件夹中的 lib 文件目录中。
在Tomcat或者是项目之中所有的XML文件配置之后必须重新启动Tomcat才可以实现新的配置项加载,如果要在Tomcat中增加新的程序包,也必须重新启动后才能加载。
注意:
你可以下载官网提供的 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)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
插入一些数据:
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');
- 1
- 2
- 3
数据表显示如下:
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>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
本程序在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
- 1
- 2
- 3
- 4
第二步:创建数据库封装类——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(); } }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
最后通过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> <% 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>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
程序执行结果如下:
本程序直接通过开发的DBUTils工具类获取了数据库的连接对象,这样就相当于将所有的数据库连接与关闭处理封装在了一个JavaBean中,以实现代码的可重用性,在调用时只需要通过page指令导入相关的程序类即可实现类中方法的调用。
码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识,点击,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:,学习技术的同时,我们也注重了心性的养成。