JSP连接MySQL数据库详细步骤
动态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中创建表
既然要进行数据的开发操作,则首先一定要进行数据库的创建,本次创建一张手机信息表,并且配置好相应的测试数据。
范例:创建手机信息表
?1 2 3 4 5 6 7 8 9 | 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 | 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接口实现查询操作,本次仅仅是实现查询全部数据的需要。
范例:查询数据表所有数据
?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 | <%@ 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表格元素进行展示。
执行结果显示如下:
实际上看到以上程序代码执行后,就可以非常清楚的发现,整个JavaWEB开发和Java的开发基本上是没有啥太大去别的,都是编写Java代码,只要你Java基本功扎实,那么这种程序实际上编写起来就非常容易了。
JavaBean 定义与使用
为了提高Java程序代码的可重用性,往往会将一些重复执行的代码封装在类结构之中,而这样的类也被称为JavaBean。在IDEA中的Web开发中,创建此封装类的位置结构图如下:
第一步:创建db.properties文件
?1 2 3 4 | driver=com.mysql.jdbc.Driver url=jdbc:mysql: //127.0.0.1:3306/java221804 username=root password=huanghuang |
第二步:创建数据库封装类——DBUtils类
?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 | 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数据库操作封装类
范例:
?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 | <%@ 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> |
程序执行结果如下:
本程序直接通过开发的DBUTils工具类获取了数据库的连接对象,这样就相当于将所有的数据库连接与关闭处理封装在了一个JavaBean中,以实现代码的可重用性,在调用时只需要通过page指令导入相关的程序类即可实现类中方法的调用。
到此这篇关于JSP连接MySQL数据库详细步骤的文章就介绍到这了,更多相关JSP连接MySQL数据库内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/hh867308122/article/details/128198052
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。