第四章 JDBC技术.docx

上传人:b****5 文档编号:30135499 上传时间:2023-08-05 格式:DOCX 页数:15 大小:306.96KB
下载 相关 举报
第四章 JDBC技术.docx_第1页
第1页 / 共15页
第四章 JDBC技术.docx_第2页
第2页 / 共15页
第四章 JDBC技术.docx_第3页
第3页 / 共15页
第四章 JDBC技术.docx_第4页
第4页 / 共15页
第四章 JDBC技术.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

第四章 JDBC技术.docx

《第四章 JDBC技术.docx》由会员分享,可在线阅读,更多相关《第四章 JDBC技术.docx(15页珍藏版)》请在冰豆网上搜索。

第四章 JDBC技术.docx

第四章JDBC技术

第4章JDBC技术

1.建数据库

2.表

3.设置登录名(关系表)

4.用登录名连接数据库

5.在JSP中操作

(1)新建工程后,把sqljdbc4.jar文件放到web-inf中的lib中。

(2)在sqljdbc4.jar点右键,选择add....

(3)按jsp的方法去做网页。

在页面开头写:

<%@pagelanguage="java"import="java.sql.*"contentType="text/html;charset=utf-8"

pageEncoding="utf-8"%>

DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:

//www.w3.org/TR/html4/loose.dtd">

在body的下面加载数据驱动

<%Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();

Stringurl="jdbc:

sqlserver:

//127.0.0.1:

1433;DatabaseName=db";//db表示你的数据库名

Stringusername="sa2";

//刚才新建SQL的用户名

Stringpassword="sa2";

//刚才新建SQL的/密码

%>

连接

<%

Connectionconn=DriverManager.getConnection(url,username,password);

Statementstmt=conn.createStatement();

%>

后面就可以写sql语句

如delete,insert,update这些语句用executeUpdate(Stringsql)来执行,这个语句的返回值为int

select语句要用executeQuery(Stringsql)来执行,他的返回值为ResultSet

输出记录要用while,getString(field的列号)

完毕后关闭所有对象executeUpdate();

⏹理解JDBC应用程序编程接口;

⏹掌握使用纯Java驱动程序操作数据库的编程方法;

⏹掌握对数据的增加、删除、修改和查询编程技术;

⏹查询记录的分页面显示;

⏹数据库连接池编程技术。

ToLearn

⏹1JDBC概述

⏹2JDBC应用程序接口简介

⏹3利用JDBC访问数据库

⏹4数据库操作案例

例子:

<%@pagelanguage="java"import="java.sql.*"contentType="text/html;charset=gb2312"

pageEncoding="gb2312"%>

数据库连接

<%Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();

Stringurl="jdbc:

sqlserver:

//127.0.0.1:

1433;DatabaseName=db";

//stu为你的数据库的

Stringusername="sa2";

//刚才新建MSSQL的用户名

Stringpassword="sa2";

//密码

Connectionconn=DriverManager.getConnection(url,username,password);

Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

Stringsql2="insertintoperson(id,name,age,sex)values(10,'贾礼平',30,'男')";

intrs1=stmt.executeUpdate(sql2);

Stringsql="select*fromperson";

//SC数据库的一个表名

ResultSetrs=stmt.executeQuery(sql);

while(rs.next()){%>

您的第一个字段内容为:

<%=rs.getString

(1)%>

您的第二个字段内容为:

<%=rs.getString

(2)%>

您的第三个字段内容为:

<%=rs.getString(3)%>

您的第四个字段内容为:

<%=rs.getString(4)%>


<%}%>

<%out.println("数据库操作成功,恭喜你");%>

<%rs.close();

stmt.close();

conn.close();

%>

结果

数据库与表

4.1什么是JDBC

JDBC是Java数据库连接(JavaDataBaseConnectivity)技术的简称,指Java同许多数据库之间连接的一种标准。

JDBC为数据库应用开发人员、数据库前台工具开发人员提供了一种标准的JavaAPI,使开发人员可以用纯Java语言编写完整的数据库应用程序。

JDBC最大特点:

独立于具体的关系数据库。

JDBCAPI定义了一些JAVA类接口,分别实现与数据库的连接(connections),发送SQL语句(SQLStatements),获取结果集(resultsets)以及其它数据库对象,从而使java程序能方便与数据库交互并处理所得的结果。

JDBC的API放在java.sql,javax.sql等中。

JAVA程序应用JDBC的步骤如下:

(1)注册加载一个数据库驱动程序;

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

(2)创建数据库连接(connection)

Stringurl="jdbc:

sqlserver:

//127.0.0.1:

1433;DatabaseName=reg1";

//db表示你的数据库名

Stringusername="zyc";

//刚才新建SQL的用户名

Stringpassword="zyc";

//刚才新建SQL的/密码

Connectionconn=DriverManager.getConnection(url,username,password);

(3)创建一个statement(发送)

Statementstmt=conn.createStatement();

(4)数据库执行sql语句

用sqlserver2008中的语句,定义为String

(5)用户程序处理sql语句的结果(包括结果集ResultSet)

Delete,update,insert返回值为int,excuteUpdate(sql)

Select返回值为ResultSet,executequery(sql)

(6)关闭连接(connection)等资源

先后次序,开始是select的对象其次是Statement对象,最后是connection对像。

简单地说,JDBC能够完成下列四件事:

●与一个数据库建立连接(connection)。

●向数据库发送SQL语句(statement)。

●处理数据库返回的结果(resultset)。

●关闭连接(close)

4.2JDBC的构成

1.JDBCAPI:

定义了标准接口,无论编写Mysql还是Oracle等数据库程序,这些接口是一致的。

2.JDBC数据库驱动程序

(1)DrvierManager类

提供管理一组JDBC驱动程序所需要的基本服务,可以跟踪可用的驱动程序,并在数据库和相应的驱动程序之间建立连接。

该类的常用方法有:

getConnection和forName方法。

publicstaticConnectiongetConnection(Stringurl,Stringuser,Stringpassword)

publicstaticClassforName(StringclassName)

对getConnection函数中的参数解释:

•url参数的命名方法:

url由3部分组成,各部分间用冒号分隔,如下所示:

•jdbc:

<子协议>:

<子名称>

•其中:

jdbc——协议名称。

在JDBCURL中的协议总是jdbc。

•<子协议>——驱动程序名或数据库连接机制的名称。

“odbc”,它是用于指定ODBC风格的数据库资源名称的URL而保留的。

•<子名称>——一种标识数据库的方法。

子名称可以依不同的子协议而变化。

它还可以有子名称的子名称(含有驱动程序编程人员所选的任何内部语法)。

使用子名称的目的

是为定位数据库提供足够的信息。

DrvierManager类的使用法:

(i)加载驱动

例如:

加载Mysql

Class.forName("com.mysql.jdbc.Driver");

加载sqlserver2008

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

(ii)与数据库建立连接

DriverManager.getConnection(Stringurl,Stringuser,Stringpassword);

Stringurl="jdbc:

sqlserver:

//127.0.0.1:

1433;DatabaseName=jlp1";

(2)Connection接口

Connection接口是java.sql包中最重要的接口。

Connection对象代表与数据库的连接。

一个应用程序可与单个数据库有一个或多个连接,或者可与许多数据库有连接。

数据库连接一旦建立,就可用来向它所涉及的数据库发送SQL语句。

Connection的作用是创建向数据库发送SQL语句的三个接口。

这三个接口分别是:

⏹Statement接口

⏹PreparedStatement接口

⏹CallableStatement接口。

Connection接口提供了多个同名但是参数不同的方法创建以上的三个接口。

例如:

publicStatementcreateStatement();

publicStatementcreateStatement(intresultSetType,intresultSetConcurrency);

其中:

参数resultSetType指返回记录集的类型

resultSetConcurrency指发送的SQL语句的权限

常用的一些方法:

booleanisClosed():

用于判断Connection对象是否已经被关闭;

voidcommit():

用于提交SQL语句,确认从上一次提交以来所进行的修改;

voidclose():

断开连接,释放资源;

voidrollback():

取消SQL语句,取消当前事务中进行的修改。

DatabaseMetaDatagetMetaData():

获取一个DatabaseMetaData对象。

(3)Statement接口

Statement接口对象创建完毕后,主要使用以下方法:

publicResultSetexecuteQuery(Stringsql):

用于执行产生单个结果集的语句,如select。

publicintexecuteUpdate(Stringsql):

用于执行insert、update或delete语句以及SQLDLL(数据定义)语句。

当执行insert、update或delete语句时将返回一个整数,用于表示受影响的行数,返回结果为0时表示操作失败;当执行SQLDLL语句,如createtable时,由于它不操作行,返回值将总为0。

publicbooleanexecute(Stringsql):

用于执行返回多个结果集、多个更新计数或二者结合的SQL语句。

publicint[]executeBatch():

用于执行几个SQL语句。

Statement接口使用addBatch(Stringsql)方法将几个SQL语句添加到一个语句块中,然后一同提交给数据库服务器,同时执行。

当执行多个SQLinsert语句时效率将很高,因为一次提交比多次提交要节省很多系统资源

voidclose():

释放Satement对象的数据库和JDBC资源。

PreparedStatement接口对象主要使用以下方法:

publicResultSetexecuteQuery(Stringsql):

使用Select命名对数据库进行查询。

publicintexecuteUpdate(Stringsql):

用于执行insert、update或delete语句对数据库进行新增、删除和修改操作。

voidsetXXX(intparameterIndex,XXXx):

设定XXX数据类型值给PreparedStatement类对象的IN参数。

CallableStatement接口

CallableStatement接口主要用于执行存储过程,其主要方法同Statement。

存储过程有两种参数,IN参数和OUT参数。

CallableStatement接口继承了PerpareedStatement接口的setXXX方法对IN参数赋值。

在CallableStatement接口中使用OUT参数,要做两件事情,一是对OUT参数进行类型注册,二是获取OUT参数的值。

CallableStatement提供了多种方法进行类型注册,下面是常用的两种:

registerOutParameter(StringparameterStringName,intsqlType);

registerOutParameter(Stringpar

(4)数据结果集——ResultSet接口

ResultSet接口用于获取执行SQL语句(或数据库存储过程)返回的结果。

它的实例对象是符合SQL语句条件的所有行。

常用的方法有:

–publicbooleannext():

用于数据库游标移动到结果集的下一行,使之成为当前行。

如果当前行为最后一行,返回值为false;否则,返回true。

–在定位到结果集中的某行后,就可以读取数据。

对于

不同数据类型,要使用不同的读取方法getXXX()。

JDBC提供了两种形式:

publicXXXgetXXX(StringcolumnName):

XXX代表任意的数据类型,参数columnName代表列名。

publicXXXgetXXX(intcolumnIndex):

XXX代表任意的数据类型,参数columnIndex代表列号。

ResultSetMetaDatagetMetaData():

获取结果集的列编号、类型和属性

privateStatementstmt=null;

privateResultSetrs=null;

privatePreparedStatementprpSql=null;

Class.forName("com.mysql.jdbc.Driver");

Connectionconn=

DriverManager.getConnection("jdbc:

mysql:

//localhost:

端口号/数据库名称",

"用户名","密码");

stmt=conn.createStatement();

rs=stmt.executeUpdate("select*fromdatabase");

while(rs.next())

{……

rs.getString

(1);

}

rs.close();

stmt.close();

conn.close();

SeeP81

总结:

使用JDBCAPI访问数据库的步骤

1.加载JDBC驱动程序,例如加载jdbc-odbc

利用System类静态方法setProperty()

System.setProperty(“jdbc.drivers”,”sun.jdbc.obdc.Jdbc0dbcDriver”)

利用class类的方法forName(),例如加载jdbc-odbc

Class.forName(”sun.jdbc.obdc.Jdbc0dbcDriver”);

加载Jdbc

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")

2.建立与数据库的连接

Stringurl="jdbc:

sqlserver:

//127.0.0.1:

1433;DatabaseName=db";

//db为你的数据库的

Stringusername="sa2";

//刚才新SQL的用户名密码

Stringpassword="sa2";

Connectionconn=DriverManager.getConnection(url,username,password);

3.进行数据库操作

主要有两个接口:

Statement和PrepareStatement.

Statementrt=conn.createStatement()

执行Sq命令:

Con=DriverManager.getConntection(url);

Statementstmt=con.createStatement();

Stmt.excuteUpdate(sql);

Insert

Update

Delete

Stmt.executeQuery(sql)

Select,返回ResultSet

操作依赖于sql语句。

每执行一条sql语句,都要利用Connection实例的createStatement()方法创建一个statement实例,通过statement实例的excute()方法,excuteQuerry()方法,excuteUpdate()等方法执行sql语句。

Statementstmt=conn.createStatement();

Stringsql2="deletefrompersonwherename='张一'";

intrs1=stmt.executeUpdate(sql2);

Stringsql="select*fromperson";

//SC数据库的一个表名

ResultSetrs=stmt.executeQuery(sql);

4.对操作结果进行分析

执行select语句后,会产生一个Resultset结果集实例,对结果集进行分析是java应用程序的最终目的,要用循环遍历结果集,使用ResultSet的getXXX方法取得指定行指定列的数据。

(见表4-5ofP81).

while(rs.next()){

intid=rs.getint("id");

...

}

5.关闭相关连接

操作数据库完毕后,需要关闭相应连接以释放资源。

//关闭ResultSet实例rs

rs.close();

//关闭Statement实例statement

statement.close();

//关闭Connection实例con

con.close();

关闭数据库操作的顺序与打开数据库操作的顺序相反

先关闭结果集(ResultSet)

再关闭操作(Statement)

最后关闭连接(Connection)

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1