以下是在JSP中访问数据库的完整攻略:
以下是在JSP中访问数据库的完整攻略:
1. 准备工作
要在JSP中访问数据库,首先需要安装JDBC驱动和配置数据库连接信息。
- 下载对应数据库的JDBC驱动jar包,将其放置于Web应用的
WEB-INF/lib
目录下 - 在Web应用的
WEB-INF
目录下创建一个名为web.xml
的文件,并在其中配置数据库连接信息,比如连接地址、用户名、密码等
<!-- 以下是MySQL的配置示例 -->
<context-param>
<param-name>jdbc_driver_class</param-name>
<param-value>com.mysql.cj.jdbc.Driver</param-value>
</context-param>
<context-param>
<param-name>jdbc_url</param-name>
<param-value>jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC</param-value>
</context-param>
<context-param>
<param-name>jdbc_username</param-name>
<param-value>root</param-value>
</context-param>
<context-param>
<param-name>jdbc_password</param-name>
<param-value>password</param-value>
</context-param>
2. 连接数据库
在JSP中,连接数据库的代码通常写在<%! %>
标签中或者通过JavaBean来完成。
以下是两个示例:
方式一:使用JSP内的Java代码进行连接
<%@ page import="java.sql.*" %>
<%@ page import="javax.naming.*" %>
<%
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 获取数据库连接
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource) envCtx.lookup("jdbc/myds");
conn = ds.getConnection();
// 执行SQL查询语句并处理结果集
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from mytable");
while (rs.next()) {
out.println(rs.getString(1));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭数据库资源
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
%>
方式二:使用JavaBean进行连接
<%@ page import="com.example.MyDBBean" %>
<jsp:useBean id="mydb" class="com.example.MyDBBean" scope="page" />
<%
// 执行SQL查询语句并处理结果集
ResultSet rs = mydb.query("select * from mytable");
while (rs.next()) {
out.println(rs.getString(1));
}
rs.close();
%>
3. 执行SQL语句
连接数据库成功后,可以通过Statement
或PreparedStatement
对象来执行SQL查询或更新操作。
以下是两个示例:
方式一:使用Statement执行SQL语句
<%@ page import="java.sql.*" %>
<%@ page import="javax.naming.*" %>
<%
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 获取数据库连接
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource) envCtx.lookup("jdbc/myds");
conn = ds.getConnection();
// 执行SQL查询语句并处理结果集
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from mytable");
while (rs.next()) {
out.println(rs.getString(1));
}
// 执行SQL更新语句
stmt.executeUpdate("update mytable set column1 = 'newvalue' where id = 1");
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭数据库资源
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
%>
方式二:使用PreparedStatement执行SQL语句
<%@ page import="java.sql.*" %>
<%@ page import="javax.naming.*" %>
<%
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
// 获取数据库连接
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource) envCtx.lookup("jdbc/myds");
conn = ds.getConnection();
// 执行SQL查询语句并处理结果集
stmt = conn.prepareStatement("select * from mytable where column1 = ?");
stmt.setString(1, "value");
rs = stmt.executeQuery();
while (rs.next()) {
out.println(rs.getString(1));
}
// 执行SQL更新语句
stmt = conn.prepareStatement("update mytable set column1 = ? where id = ?");
stmt.setString(1, "newvalue");
stmt.setInt(2, 1);
stmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭数据库资源
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
%>
总结
上述是在JSP中访问数据库的完整攻略,包括准备工作、连接数据库、执行SQL语句等几个步骤。在具体使用时,可以根据实际情况选择不同的方式来连接数据库和执行SQL语句。
沃梦达教程
本文标题为:在JSP中访问数据库大全
基础教程推荐
猜你喜欢
- 详解Java Bellman-Ford算法原理及实现 2023-02-27
- MyBatis在注解上使用动态SQL方式(@select使用if) 2023-02-19
- Spring Data JPA注解Entity使用示例详解 2023-06-02
- SpringBoot整合mybatis/mybatis-plus实现数据持久化的操作 2023-06-23
- PageHelper插件实现服务器端分页功能 2024-01-10
- 如何使用Collections.reverse对list集合进行降序排序 2023-08-10
- Spring @Cacheable指定失效时间实例 2023-08-10
- JSP制作简单登录界面实例 2023-07-30
- Java MyBatis本地缓存原理详解 2023-02-19
- Spring Boot简单实现文件上传功能 2022-09-03