JSP: JSP教学06 数据库的连接

您所在的位置:网站首页 jsp连接数据库的步骤包括 JSP: JSP教学06 数据库的连接

JSP: JSP教学06 数据库的连接

2024-07-10 18:38| 来源: 网络整理| 查看: 265

教学目的:了解如何在JSP中连接和查询数据库

6.1 数据库与JDBC

Web应用程序大都需要数据库系统的支持,JSP通过JDBC来实现数据库操作。

JDBC即“Java数据库连接”,是Java平台的一个标准应用程序接口(API)。

JDBC定义了Java平台上数据库驱动的编写和使用规范,采用标准查询语言(SQL)并支持与“开放数据库互连”(ODBC)应用程序接口之间的桥接。

JDBC的主要对象:

Driver:驱动,负责加载特定种类的数据库DriverManager:驱动管理器,负责管理所有种类的数据库驱动Connection:连接,负责与数据库进行通讯Statement:语句,负责封装标准查询语言的语句并传递给数据库ResultSet:结果集,负责存放查询数据库所返回的临时表,一个结果集包含若干条记录(行),一条记录包含若干个字段(列)

JDBC对象相应的类和接口都属于数据库类包java.sql.*,访问数据库的JSP页面需要引入此类包(注意:DW创建的JSP页面默认都添加了引入此类包的指令代码)

6.2 连接数据库

要在JSP页面中建立数据库连接,首先需使用Class类的forName方法加载特定的数据库驱动:

static Class forName(String className)  //className参数是要加载的数据库驱动类名

然后再使用DriverManager类的getConnection方法创建数据库连接对象:

static Connection getConnection(String url)  //url参数是数据库连接字符串,不同的数据库使用不同的连接字符串

如果某种数据库没有JDBC驱动但有ODBC驱动,则可以使用JDK内置的JDBC-ODBC桥接器建立数据库连接对象(驱动类名是sun.jdbc.odbc.JdbcOdbcDriver)

例:使用JDBC-ODBC桥接器驱动连接Access数据库

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=d:/Northwind.mdb");

使用JDBC-ODBC桥接器驱动连接SQL Server数据库

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn = DriverManager.getConnection("jdbc:odbc:Driver={SQL Server};Server=localhost;Database=Northwind;Uid=leo;Pwd=123");

也可以在操作系统提供的“ODBC数据源管理器”中预先添加数据源,则此处的连接字符串只要写为“jdbc:odbc:数据源名”即可。SQL Server 2000原版存在安全漏洞所以操作系统会自动禁止通过TCP/IP协议连接,只允许连接本机数据源,必须打上SP4补丁方可启用网络方式访问。

(注意:使用JDBC-ODBC桥接器连接数据库在可用功能和运行效率上存在不足,只要某种数据库提供了专门的JDBC驱动,就应当避免使用JDBC-ODBC桥接器。)

数据库厂商大都会提供其数据库的JDBC驱动程序,JDBC驱动程序通常是一个jar文件,其中包含了特定的数据库驱动类,将其复制到以下Java类库文件夹之一并重启Tomcat即可使用:

1、JDK安装目录下的jre\lib\ext文件夹:本机上运行的所有Java应用程序都可使用该驱动2、Tomcat安装目录下的lib文件夹:Tomcat上运行的所有Web应用程序都可使用该驱动3、Web应用程序目录下的WEB-INF\lib文件夹:只有该Web应用程序可使用该驱动

(注意:第一个文件夹是Java的默认类库,DriverManager的getConnection方法会根据连接字符串参数确定数据库类型自动加载其中的数据库驱动,不必使用Class类的forName方法预先加载)

例:使用专门的JDBC驱动连接Access数据库(驱动类名为com.hxtt.sql.access.AccessDriver,注意这是第三方出品的商业软件,演示版有50次查询限制,仅能用于学习场合)

Class.forName("com.hxtt.sql.access.AccessDriver"); Connection conn = DriverManager.getConnection("jdbc:access:/d:/Northwind.mdb");

使用专门的JDBC驱动连接SQL Server数据库(驱动类名为com.microsoft.sqlserver.jdbc.SQLServerDriver)

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost;DatabaseName=Northwind;User=leo;Password=123");

(注意:SQL Server 2000必须打上SP4补丁才能使用3.0以下版本的JDBC驱动,微软最新版驱动也已经不再支持SQL Server 2000)

建立数据库连接之后,就可与数据库进行各种交互,例如查询、添加、修改和更新等操作,不论是对哪种数据库,这些操作所使用的代码都是一样的。

6.3 查询记录

在JSP页面建立数据库连接对象后,可以使用JDBC提供的API发送SQL语句实现和数据库的交互,下面介绍查询记录操作的具体步骤。

首先让连接对象调用createStatement方法创建一个语句对象(在实际应用中更常见的是用prepareStatement方法创建一个“预处理语句”对象PreparedStatement,这样可以向SQL中动态地传入参数):

Statement createStatement()

然后再让语句对象调用executeQuery方法获得一个结果集对象:

ResultSet executeQuery(String sql) //sql参数是要执行的查询语句

结果集对象先执行next方法按行移动数据游标,再执行get方法获得当前行的特定字段值(传入参数为字段名字符串或字段序号数值)

boolean next() //如果返回flase,说明数据游标已经移至结果集的末尾,不能再执行get方法

操作完毕后应当让结果集对象、语句对象和连接对象调用close方法关闭对象以及时释放系统资源

void close()

例:在示例数据库Northwind中查询雇员表Employees并以表格形式在页面中输出所有雇员的编号、姓名和职位

雇员号 姓 名 职位

6.4 使用DW的数据库面板连接数据库

使用DW的数据库面板,能够以所见即所得方式自动生成操作数据库的代码而不必手工编写,为Web应用程序的开发提供更多便利。

(注意:使用CS4以上版本的DW的数据库面板,需要将专用JDBC驱动复制到DW安装目录下的configuration\JDBCDriver文件夹中,否则以专用JDBC驱动连接数据库时会提示找不到类;还需要将JDK安装目录下的jre\lib\charsets.jar复制到DW安装目录下的jvm\lib文件夹中,否则以专用JDBC驱动连接SQL Server数据库时会提示不支持中文排序规则,以JDBC-ODBC驱动连接数据库时也会提示不支持中文编码) 

例:使用DW的数据库面板访问罗斯文商贸数据库并查询雇员表中的记录

首先创建Web应用程序页面,在数据库面板中点击“+”按钮,选择“自定义JDBC连接”

在“自定义JDBC连接”对话框中设置连接信息,连接名称为conn,驱动程序为com.hxtt.sql.access.AccessDriver,URL为jdbc:access:/d:/罗斯文.mdb,点击“测试”按钮测试连接,点击“确定”按钮完成连接的创建。

(注意:CS3以下版本的DW不能直接使用本机的驱动程序,建立数据库连接时应选择“使用测试服务器上的驱动程序”)

创建连接后即可在数据库面板中直接查看数据库的内容。

第二步是绑定记录集(即结果集),切换到“绑定”面板,点击“+”按钮,选择“记录集(查询)”

在“记录集”对话框中设置记录集信息:名称为rsEmployees,连接为conn,表格为雇员,按默认设置返回所有记录,点击“测试”按钮测试记录集,点击“确定”按钮完成记录集的创建

绑定记录集后即可在记录集面板看到记录集的全部字段。

第三步是添加显示记录集第一条记录的各个字段的动态文本,在页面中添加一个2行4列的表格,先输入表头文本,然后将绑定面板中rsEmployees记录集的“姓氏”字段直接拖到表格第2行的第1个单元格即可将动态文本放入单元格。以同样方法将其他字段分别放入第2行的其他单元格:

第四步是通过循环显示记录集的所有记录,先在页面中选定动态文本所在的行,切换到“服务器行为”面板,点击“+”按钮,选择“重复区域”

在“重复区域”对话框中设置重复区域服务器行为,记录集为rsEmployees,显示所有记录,点击“确定”按钮添加重复区域服务器行为

最后在浏览器中运行页面查看显示效果(出生日期字段的动态文本应设为只显示日期,可以修改代码用getString方法或,在绑定面板中设置显示格式)

DW会以指定连接名在Connections目录下创建连接文件供整个站点的所有页面引用,这样修改数据库连接设置时只需修改一个文件即可。如果需要基于这个统一的设置手动创建连接对象可以用如下的代码段:

(注意:由于本例数据库使用了中文文件名,因此需要修改连接文件添加页面指令设置与其他页面相同的字符编码。实际开发中建议不要使用中文文件名和中文字段名以避免麻烦)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3