Java实用PPT课件第12章Java数据库操作.ppt
《Java实用PPT课件第12章Java数据库操作.ppt》由会员分享,可在线阅读,更多相关《Java实用PPT课件第12章Java数据库操作.ppt(37页珍藏版)》请在三一办公上搜索。
1、第12章 Java 数据库操作,本章导读JDBC简介Microsoft Access 数据库JDBC-ODBC桥接器查询操作更新、插入与删除操作用结果集更新表CachedRowSetImpl类预处理语句与事务批处理SQL Server 2000数据库使用纯Java数据库驱动程序,12.1 JDBC简介,JDBC(Java DataBase Connectivity)是Java运行平台的核心类库中的一部分,提供了访问数据库的API,它由一些Java类和接口组成。在Java中可以使用JDBC实现对数据库中表记录的查询、修改和删除等操作。JDBC技术在数据库开发中占有很重要的地位,JDBC操作不同的
2、数据库仅仅是连接方式上的差异而已,使用JDBC的应用程序一旦和数据库建立连接,就可以使用JDBC提供的API操作数据库,如图12.1所示。我们经常使用JDBC进行如下的操作:与一个数据库建立连接。向已连接的数据库发送SQL语句。处理SQL语句返回的结果。,图12.1,12.2 Microsoft Access数据库_1建立数据库,Microsoft Access是常用的一个数据库管理系统之一,具有速度快、使用方便等特点。表是关系型数据库的基本单位,本节简单介绍怎样使用Microsoft Access数据库管理系统创建数据库和在数据库中创建表。,1.建立数据库 单击Window 2000/XP系
3、统桌面上的“开始”“所有程序”“Microsoft Access”启动数据库管理系统。然后选择新建数据库,如图12.2所示。将新建的数据库命名为student.mdb,并保存到D:ch12目录中。,12.2 Microsoft Access数据库_2 创建表,创建好数据库后,就可以在该数据库下建立若干个表。我们准备在student.mdb数据库中创建名字为message的表。打开student.mdb数据库,在选择界面上选择“使用设计器创建表”后,单击“设计”,将出现创建表的界面,如图12.3所示。message表的字段(属性)为:number(文本),name(文本),birthday(日期
4、/时间),height(数字,双精度)。其中,number字段为主键(在该字段上单击鼠标右键,将number设置为主键)。打开创建的message表,录入记录,如图12.4所示。,12.3 JDBC-ODBC桥接器,本节介绍JDBCODBC桥接器连接方式。使用JDBCODBC桥接器方式的机制是,应用程序只需建立JDBC和ODBC之间的连接,而和数据库的连接由ODBC去完成。JDBCODBC桥接器的优点是:JDBC有能力访问几乎所有类型的数据库。缺点是移植性较差,应用程序所驻留的计算机必须提供ODBC。应用程序负责使用JDBC提供的API建立JDBCODBC桥接器,然后应用程序就可以请求和数据库
5、建立连接,连接工作由ODBC完成。需要强调是,ODBC使用“数据源”来管理数据库,所以必须事先将某个数据库设置成ODBC所管理的一个数据源,应用程序只能请求和ODBC管理的数据源建立连接。使用JDBCODBC桥接器方式和数据库建立连接如图12.5所示。以下详细讲解Java应用程序使用JDBCODBC桥接器访问数据库的3个步骤:建立JDBC-ODBC桥接器 创建ODBC数据源 和ODBC数据源建立连接 以下假设应用程序所在的计算机要访问本地数据库student.mdb,即我们在12.2中建立的数据库。,图12.5,Java应用程序使用JDBCODBC桥接器访问数据库的步骤1,1建立JDBC-OD
6、BC桥接器 JDBC使用java.lang包中的Class类建立JDBC-ODBC桥接器。Class类通过调用它的静态方法forName加载sun.jdbc.odbc包中的JdbcOdbcDriver类建立JDBC-ODBC桥接器。建立桥接器时可能发生异常,必须捕获这个异常,建立桥接器的代码是:try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);catch(ClassNotFoundException e)System.out.println(e);,Java应用程序使用JDBCODBC桥接器访问数据库的步骤2,2ODBC数据源 应用程序所在的计算机
7、负责创建数据源,即将本地或远程计算机上的数据库设置成自己要访问的数据源。因此,必须保证应用程序所在计算机有ODBC系统(Widow2000和Window/XP都有ODBC系统)。(1)创建、修改或删除数据源 选择“控制面板”“管理工具”“ODBC数据源”,双击ODBC数据源图标,出现如图12.6所示界面。(2)选择驱动程序 在图12.6所示的界面上选择单击“添加”按钮,如图12.7所示。选择“Microsoft Access Driver(*.mdb)。(3)数据源名称 在图12.7界面单击“完成”按钮将出现设置数据源具体项目的对话框,如图12.8所示。在名称栏里为数据源起一个你自己喜欢的名称
8、,这里我们起的名称是hello。在“数据库选择”栏中选择一个数据库。,图12.6,图12.7,图12.8,Java应用程序使用JDBCODBC桥接器访问数据库的步骤3,3连接数据源 现在我们有了一个数据源hello,这个数据源就是数据库student.mdb。编写连接数据库代码不会出现数据库的名称,只能出现数据源的名字。首先使用java.sql包中的Connection类声明一个对象,然后再使用类DriverManager调用它的静态方法getConnection创建这个连接对象:Connection con=DriverManager.getConnection(jdbc:odbc:数据源名
9、字,login name,password);对于Access数据库,不必为数据源设置login name 和password,那么连接形式是:Connection con=DriverManager.getConnection(jdbc:odbc:数据源名字,);为了能和数据源hello交换数据,建立Connection对象如下,建立连接时应捕获SQLException异常:try Connection con=DriverManager.getConnection(jdbc:odbc:hello,);catch(SQLException e)这样就和数据源hello建立了连接。应用程序一旦
10、和某个数据源建立连接,就可以通过SQL语句和该数据源所指定的数据库中的表交互信息,比如查询、修改、更新表中的记录。,12.4 查询操作_1查询操作步骤,1向数据库发送SQL查询语句 首先使用Statement声明一个SQL语句对象,然后让已创建的连接对象con调用方法createStatment()创建这个SQL语句对象,代码如下:try Statement sql=con.createStatement();catch(SQLException e)2处理查询结果 有了SQL语句对象后,这个对象就可以调用相应的方法实现对数据库中表的查询和修改,并将查询结果存放在一个ResultSet类声明的
11、对象中。也就是说SQL查询语句对数据库的查询操作将返回一个ResultSet对象,ResultSet对象是以统一形式的列组织的数据行组成。例如,对于ResultSet rs=sql.executeQuery(SELECT*FROM message);内存的结果集对象rs的列数是4列,刚好和message的列数相同,第1列至第4列分别是“number”、“name”“birthdy”和“height”列;而对于ResultSet rs=sql.executeQuery(SELECT name,height FROM message);内存的结果集对象rs列数只有两列,第一列是“name”列、第2
12、列是“height”列。ResultSet对象一次只能看到一个数据行,使用next()方法可以将游标依次移动到数据行,当游标移动到某数据行后,ResultSet对象使用getXxx方法,并将位置索引(第一列使用1,第二列使用2等等)或列名传递给该方法的参数,就可以获得改数据行中相应的列值。表12.1给了出了ResultSet对象的若干方法。,表12.1,12.4 查询操作_2顺序查询,结果集ResultSet对象调用next()方法,可以顺序查询表中的记录。结果集对象将游标最初定位在第一行的前面,第一次调用next()方法使游标移动到第一行。next()方法返回一个boolean型数据,当游标
13、移动到最后一行之后返回false。例12-1中,查询数据库student.mdb中message表里的全部记录,每条记录包含全部的字段值,效果如图12.9所示。,12.4 查询操作_3模糊查询,可以用SQL语句操作符LIKE进行模式般配,使用“%”表示零个或多个字符,用一个下划线“_”表示任意一个字符,使用“若干字符”表示“若干字符”中的任意一个。比如,下述语句查询字段name值以“张”为前缀的记录:rs=sql.executeQuery(SELECT*FROM message WHERE name LIKE 张%);下述语句查询字段name值以“张”或“李”为前缀的记录:rs=sql.exe
14、cuteQuery(SELECT*FROM message WHERE name LIKE 张李%);将例12-1中的 rs=sql.executeQuery(SELECT*FROM message);修改为 sql.executeQuery(SELECT*FROM message WHERE name Like 张李%);后,程序的输出结果如下:001,张三,1990-10-10,1.78002,李四,1989-09-09,1.67,12.4 查询操作_4排序查询,可以在SQL语句中使用ORDER BY子语句,对记录排序。例如,按height排序查询的SQL语句:SELECT*FROM me
15、ssage ORDER BY height。将例12-1中的 rs=sql.executeQuery(SELECT*FROM message);修改为 sql.executeQuery(SELECT*FROM message ORDER BY height);后,程序的输出结果如下(按身高排序):003,王小二,1999-11-11,1.65002,李四,1989-09-09,1.67001,张三,1990-10-10,1.78004,孙小三,1989-12-12,1.86 将例12-1中的rs=sql.executeQuery(SELECT*FROM message);修改为sql.exec
16、uteQuery(SELECT*FROM message ORDER BY birthday);后,程序的输出结果如下(按出生日期排序):002,李四,1989-09-09,1.67004,孙小三,1989-12-12,1.86001,张三,1990-10-10,1.78003,王小二,1999-11-11,1.65,12.4 查询操作_5条件查询,可以在SQL语句中使用WHERE子语句,进行条件查询。例如,SQL语句:SELECT*FROM message WHERE name=张三查询姓名是“张三”的记录;SQL语句:SELECT*FROM message WHERE DATEPART(y
17、yyy,birthday)=1990查询1990年后出生的记录。将例12-1中的rs=sql.executeQuery(SELECT*FROM message);修改为rs=sql.executeQuery(SELECT*FROM message WHERE DATEPART(yyyy,birthday)1990 ND height=1.65);后,程序的输出结果如下:001,张三,1990-10-10,1.78003,王小二,1999-11-11,1.65,12.4 查询操作_6随机查询,有时候我们需要在结果集中前后移动、或显示结果集指定的一条记录等等。这时,我们必须要返回一个可滚动的结果集
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 实用 PPT 课件 12 数据库 操作
链接地址:https://www.31ppt.com/p-6509761.html