首页 > JSP教程 阅读:4730

JSP JDBC访问数据库

通义灵码
动态网页的主要特点就是能及时更新数据,这些更新的数据来源于数据库。学习本节内容需要您了解 JDBC,可以使用 JDBC 连接 MySQL 数据库。

本节数据库使用 MySQL 5.7,你可以点击 MySQL 官方网站 下载相应的 jar 包。

注意:MySQL 8.0 及之后的版本与之前的数据库连接有所不同:
  • 首先驱动 com.mysql.jdbc.Driver 更换为 com.mysql.cj.jdbc.Driver。
  • MySQL 8.0 及以上版本需要显式关闭 SSL 连接和指定 CST。

MySQL 8.0 及以上版本加载驱动与连接数据库方式如下:
  • <sql:setDataSource var="snapshot" driver="com.mysql.cj.jdbc.Driver"
  • url="jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
  • user="root" password="root"/>
下面使用 JSTL 对数据表中的数据进行增删改查。

示例

创建 website 数据表,并插入数据。点击下载 SQL 文件(下载后需要解压)

crud.jsp 代码如下:
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <%@ page import="java.io.*,java.util.*,java.sql.*"%>
  4. <%@ page import="javax.servlet.http.*,javax.servlet.*"%>
  5. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  6. <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
  7. <!DOCTYPE html>
  8. <html>
  9. <head>
  10. <title>编程帮(www.biancheng.net)</title>
  11. </head>
  12. <body>
  13. <%--
  14. JDBC驱动名、数据库 URL、数据库的用户名与密码
  15. useUnicode=true&characterEncoding=utf-8 防止中文乱码
  16. --%>
  17. <sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
  18. url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8"
  19. user="root" password="root" />
  20.  
  21. <%-- 插入数据
  22. <sql:update dataSource="${snapshot}" var="result">
  23. INSERT INTO website (NAME,url,age,country) VALUES ('京东', 'https://www.jd.com/', 15, 'CN');
  24. </sql:update> --%>
  25.  
  26. <%-- 删除website表中id为9数据
  27. <c:set var="id" value="9" />
  28. <sql:update dataSource="${snapshot}" var="count">
  29. DELETE FROM website WHERE id = ?
  30. <sql:param value="${id}" />
  31. </sql:update>--%>
  32.  
  33. <%-- 修改website表中id为8数据
  34. <c:set var="id" value="8" />
  35. <sql:update dataSource="${snapshot}" var="count">
  36. UPDATE website SET name="biancheng" WHERE id = ?
  37. <sql:param value="${id}" />
  38. </sql:update>--%>
  39.  
  40. <%-- 查询数据 --%>
  41. <sql:query dataSource="${snapshot}" var="result">
  42. SELECT * from website;
  43. </sql:query>
  44.  
  45. <table border="1" width="100%">
  46. <tr>
  47. <th>id</th>
  48. <th>name</th>
  49. <th>url</th>
  50. <th>age</th>
  51. <th>country</th>
  52. </tr>
  53. <c:forEach var="row" items="${result.rows}">
  54. <tr>
  55. <td><c:out value="${row.id}" /></td>
  56. <td><c:out value="${row.name}" /></td>
  57. <td><c:out value="${row.url}" /></td>
  58. <td><c:out value="${row.age}" /></td>
  59. <td><c:out value="${row.country}" /></td>
  60. </tr>
  61. </c:forEach>
  62. </table>
  63. </body>
  64. </html>
运行结果如下:
查询数据
查询数据
 
添加数据
添加数据
 
修改数据
修改数据
 
删除数据
删除数据