### JSP连接数据库大全
#### 一、概述
在Java Web开发中,JSP (Java Server Pages) 是一种广泛使用的动态网页技术。它允许开发者在HTML文档中嵌入Java代码,实现动态内容的生成。而数据库操作是Web应用中不可或缺的一部分,通过JSP可以方便地与各种类型的数据库进行交互。本文将详细介绍如何使用JSP来连接并操作三种常见的数据库:Oracle、SQL Server以及DB2。
#### 二、连接Oracle数据库
##### 1. 配置环境
为了能够使用JSP来访问Oracle数据库,首先需要配置相关的驱动。下面是一个简单的示例代码:
```jsp
<%@page contentType="text/html" pageEncoding="UTF-8" %>
<%@page import="java.sql.*" %>
<html>
<body>
<% Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); %>
<% String url = "jdbc:oracle:thin:@localhost:1521:orcl"; // orcl为数据库SID %>
<% String user = "scott"; %>
<% String password = "tiger"; %>
<% Connection conn = DriverManager.getConnection(url, user, password); %>
<% Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); %>
<% String sql = "SELECT * FROM test"; %>
<% ResultSet rs = stmt.executeQuery(sql); %>
<% while (rs.next()) { %>
第一列为 <%= rs.getString(1) %> <br/>
第二列为 <%= rs.getString(2) %> <br/>
<% } %>
<% out.print("数据库连接成功"); %>
<% rs.close(); %>
<% stmt.close(); %>
<% conn.close(); %>
</body>
</html>
```
##### 2. 代码解析
- `Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();`:加载Oracle JDBC驱动。
- `DriverManager.getConnection(url, user, password);`:使用指定的URL、用户名和密码获取数据库连接。
- `stmt.executeQuery(sql);`:执行SQL查询语句,并返回结果集。
- `rs.getString(1)` 和 `rs.getString(2)`:从结果集中获取第一列和第二列的数据。
#### 三、连接SQL Server数据库
##### 1. 配置环境
对于SQL Server数据库,连接方式也较为类似,但需要注意的是驱动的不同。下面是一个简单的示例代码:
```jsp
<%@page contentType="text/html" pageEncoding="UTF-8" %>
<%@page import="java.sql.*" %>
<html>
<body>
<% Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); %>
<% String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"; // pubs为数据库名 %>
<% String user = "sa"; %>
<% String password = ""; %>
<% Connection conn = DriverManager.getConnection(url, user, password); %>
<% Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); %>
<% String sql = "SELECT * FROM test"; %>
<% ResultSet rs = stmt.executeQuery(sql); %>
<% while (rs.next()) { %>
第一列为 <%= rs.getString(1) %> <br/>
第二列为 <%= rs.getString(2) %> <br/>
<% } %>
<% out.print("数据库连接成功"); %>
<% rs.close(); %>
<% stmt.close(); %>
<% conn.close(); %>
</body>
</html>
```
##### 2. 代码解析
- `Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();`:加载Microsoft SQL Server JDBC驱动。
- `DriverManager.getConnection(url, user, password);`:使用指定的URL、用户名和密码获取数据库连接。
- `stmt.executeQuery(sql);`:执行SQL查询语句,并返回结果集。
- `rs.getString(1)` 和 `rs.getString(2)`:从结果集中获取第一列和第二列的数据。
#### 四、连接DB2数据库
##### 1. 配置环境
对于DB2数据库,连接方式也较为类似,同样需要注意驱动的不同。下面是一个简单的示例代码:
```jsp
<%@page contentType="text/html" pageEncoding="UTF-8" %>
<%@page import="java.sql.*" %>
<html>
<body>
<% Class.forName("com.ibm.db2.jdbc.app.DB2Driver").newInstance(); %>
<% String url = "jdbc:db2://localhost:5000/sample"; // sample为数据库名 %>
<% String user = "admin"; %>
<% String password = ""; %>
<% Connection conn = DriverManager.getConnection(url, user, password); %>
<% Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); %>
<% String sql = "SELECT * FROM test"; %>
<% ResultSet rs = stmt.executeQuery(sql); %>
<% while (rs.next()) { %>
第一列为 <%= rs.getString(1) %> <br/>
第二列为 <%= rs.getString(2) %> <br/>
<% } %>
<% out.print("数据库连接成功"); %>
<% rs.close(); %>
<% stmt.close(); %>
<% conn.close(); %>
</body>
</html>
```
##### 2. 代码解析
- `Class.forName("com.ibm.db2.jdbc.app.DB2Driver").newInstance();`:加载IBM DB2 JDBC驱动。
- `DriverManager.getConnection(url, user, password);`:使用指定的URL、用户名和密码获取数据库连接。
- `stmt.executeQuery(sql);`:执行SQL查询语句,并返回结果集。
- `rs.getString(1)` 和 `rs.getString(2)`:从结果集中获取第一列和第二列的数据。
#### 五、总结
通过以上介绍可以看出,无论是Oracle、SQL Server还是DB2数据库,其基本的连接步骤和方法都是类似的,主要的区别在于使用的JDBC驱动不同。在实际开发过程中,根据所使用的数据库类型选择相应的驱动即可。此外,还需要注意数据库的URL格式、端口号等细节配置信息,确保能够正确建立数据库连接。