JDBC 技术
- 本章节学习的目的是了解数据库在 JSP 中的操作及其应用,要求理解 JDBC 技术并能够熟练运用 JDBC 技术进行 JSP 案例开发。
一、JDBC 简介
- Java 数据库连接(Java DataBase Connectivity,JDBC)是面向应用程序开发人员和数据库驱动程序开发人员的应用程序接口(Application Programming Interface,API)。
1.什么是 JDBC
-
JDBC 是一种用于执行 SQL 语句的 Java API,可以为多种关系型数据库提供统一访问,它由一组 Java 语言编写的类和接口组成。JDBC 为开发人员提供了一个标准的 API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序。简单的说,JDBC 能完成下列三件事情
-
与一个数据库连接
-
向数据库发送 SQL 语句
-
处理数据库返回的结果
2.JDBC 的结构
- JDBC 的结构如图所示:
(1)应用程序
- 应用程序实现 JDBC 的连接、发送 SQL 语句,然后获取结果的过程要执行以下任务:与数据库请求建立连接;向数据库发送 SQL 请求;为结果集定义存储应用和数据类型;访问结构;处理错误;控制传输,提交操作;关闭连接。
(2)JDBC API
- JDBC API 是一个标准统一的 SQL 数据存取接口。为 Java 程序提供统一的操作各种数据库的接口。程序员编程时,不用关心它所要操作的数据库是哪种数据库,从而提高了软件的通用性。只要系统安装看正确的驱动器组件,JDBC 应用程序就可以访问相关的数据库。
(3)JDBC 驱动程序管理器
- JDBC 驱动程序管理器的主要作用是代表用户的应用程序调入特定驱动程序,要完成任务包括:为特定数据库定位驱动程序;处理 JDBC 初始化调用等。
(4)驱动程序
- 驱动程序实现 JDBC 的连接,向特定数据库发送 SQL 声明,并且为应用程序获取结果。
(5)数据库
- 数据库是应用程序要访问的数据源(如Oracle、Microsoft SQL Server、MySQL)。
二、通过 JDBC 驱动访问数据库
- 在实际访问数据库时每个数据厂商都提供了数据库的 JDBC 驱动程序,可以使用 DBMS 厂商提供的 JDBC 直接访问这些数据库。下面介绍如何通过 JDBC 驱动程序访问 Microsoft SQL Server 2008数据库。
1.Microsoft SQL Server JDBC 驱动程序下载和配置
-
下载支持 SQL Server 2008版本的 JDBC 驱动程序:https://pan.baidu.com/s/1nfB-IXm0ClzF2_57tVQxzw 提取码:nfdc
-
这里只介绍 SQL Server 的 JDBC 程序在 Eclipse 中的配置:在 Eclipse 中创建一个 Web 应用程序后会自动在 WER-INF 下面建一个 lib 文件夹,只需把 JDBC 驱动程序赋值到该 lib 文件夹中。然后右击 Eclipse 项目—>Build Path—>Configure Build Path,出现下图
- 在该对话框中选择选项卡 Libraries(库)—>Add External JARs(添加外部JAR),找到 SQL Server 的 JDBC 驱动程序(sqljdbc42.jar),然后单击“打开”按钮,这样配置就完成了。下面进行测试。
2.使用 SQL Server 建立数据库和表
- 具体方法可百度
- 建立一个数据库 Test,在库中建立一个表 Person,如图所示:
3.编写 JSP 文件访问数据库(accessSQLServer.jsp)
- 代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import = "java.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>通过 JDBC 驱动程序访问 SQL Server</title>
</head>
<body bgcolor = "CCCFFF">
<center>
<br><br>
<h2>使用 JDBC 驱动程序访问 SQL Server 数据库</h2>
<hr>
<table border = 2 bgcolor = "#ccceee" align = "center">
<tr>
<th width = 40 >NAME</th>
<th width = 40>SEX</th>
<th width = 40>AGE</th>
</tr>
<%
//SQL Server 2008 的驱动程序名
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
//数据库服务器地址和表名
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=Test;";
String user = "sa";
String password = "2017212027";
//连接对象
Connection conn = DriverManager.getConnection(url,user,password);
//将SQL语句发送到数据库的对象
Statement stmt;
stmt = conn.createStatement();
String sql = "select * from Person";
//查询结果集对象
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
%>
<tr>
<td><%=rs.getString("NAME") %></td>
<td><%=rs.getString("SEX") %></td>
<td><%=rs.getString("AGE") %></td>
</tr>
<%
}
rs.close();
stmt.close();
conn.close();
%>
</table>
<hr>
</center>
</body>
</html>
- 运行效果如图所示:
【常见问题】
- 有时即使导入了 SQL Server 确定,还是会报如下错误 :
- ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
- 解决方法:在tomcat安装目录下找到lib文件夹,把sqljdbc42.jar这个jar包扔进去,重启项目即可。