Java语言程序设计:第10章 JDBC与数据库访问.pdf
JAVA语言程序设计第十章JDBC与数据库访问录10.1 数据库基础知识10.2 通过JDBC访问数据库 10.3本章小结10J数据库基础知识数据管理的两个阶段-文件管理各种数据都是以文件为单位存储在外存,且由操作系 统统一管理文件相对独立,文件结构不能很好地反映现实世界中 事物之间的联系,文件中存在大量的数据冗余-数据库管理以数据为中心组织数据,减少冗余,并提供更高的数 据共享能力,由数据库系统进行管理程序和数据具有较高的独立性,当数据的逻辑结用政 变时,不涉及数据的物理结构,也不影响应用程序,从而降低应用程序研制与维护的费用10J.1数据库技术的特点(续)数据库基础知识应用程序访问数据库的基本模式-DBMS(数据库管理系统)是数据库的核心软 件。数据库系统的各种操作,包括创建数据库 对象、检索和修改数据库中的数据,都是通过 DBMS实现的10.1,2数据模型数据库基础知识数据模型-数据库的逻辑结构-所有的数据库系统都是基于某种数据模型的-不同种类的数据库可能支持不同的数据模型 关系数据库就是因为支持关系模型而得名10J.2数据模型数据库基础知识关系模型-形象地说就是二维表结构,也称之为关系表-一个关系数据库可以包含多个关系表,关系表是数据库中 组织和存储数据的基本单位-每个表都用于存储面向某个主题的信息。例如:学生表存储学生信息 系表存储各系的信息 课程表存储课程信息等-关系表每一行存储一个记录,每一列表示记录的一个属性。设计一个关系表时需要*3为表命名 E,设计表的列结构,其中包括列名及列的数据类冠10J.2数据模型数据库基础知识学生表学号姓名性别出生年月系号2005001张小红女1987-4-23d012005002李平男1988-2-13d01 2005101成功男1986-10-21d02/学生表系表系号系名电话/d01计算机系3395d02物理系3787 由5列组成,每一列表示学生的一个属性每个学生都是用学号、姓名、性别、出生年月及所属系的系号 等属性来描述,在这些属性上的一组合法取值就对应一个笔生 记录(表中的一行)10J.3关系表中的主码与夕卜来码主码数据库基础知识为了保证关系表中没有重复的记录,需要为关系表定义 一个主码,作用是唯一标识表中的一个记录可以是表中的一列,也可以由几列组合而成在建表时如果定义了主码,系统可以对输入该表的数据 进行检查,要求主码不能重、也不能空(NULL)例如在学生表中学号可以作为主码,因为一个学号可以唯一地确定表中的一、/个学生记录由于学生中有重名现象,姓名就不能用来做为全10.1.3关系表中的主码与外来码(续)数据库基础知识外来码-现实世界中事物之间的联系反映到数据库中就体现为表 之间的联系,在关系数据库中,借助“外来码”实现存 贮这种联系的信息-如果一个表中的某一列是另外一个表中的主码,那么该 列称之为外来码。例如在学生表中,“系号”就是外来码,因为系号是系表的 主码,在学生表中设计了“系号”一列,就是为了存储学生 和系之间的联系信息-通过外来码和主码的等值连接将不同表里的相关记录连 接在一起,从而实现数据库中相关数据的查找,可以查询每个学生所在系的信息,也可以查询时定系湛笛 的学生信息10.1.3关系表中的主码与夕卜来码(续)Primary keyNumber2360324568NameJonesKerwinDepartment SalaryLocationNew JerseyNew Jersey4134131100200034589Larson6421800Los Angeles35761Myers6111400Orlando47132Neumann4139000New Jersey78321Stephens6118500OrlandoColumn|数据库基础知识10.1.3关系表中的主码与夕卜来码(续)-员工信息管理系统(PIMS)的例子数据库基础知识该数据库中建有-员工基本信息表(person)包括工作证号、姓名、部门编号、职务、工资、学历编号等 字段工作证号(ID)是该表的主码Departmen例是一个外来码,匹配部门编码表中的DepID主 码Education列也是一个外来码,匹配学历编码表中的EdulD 主码-部门编码表(department)保存了部门编号和部门名称部门编号(DepID)是主码、-学历编码表(education)4卜/保存了学历编号和学历名称、K,学历编号(EdulD)是主码 r10.1.3关系表中的主码与夕卜来码(续)-员工信息管理系统(PIMS)的例子person数据库基础知识IDNameDepartmentOccupationSalaryEducation张三_1_Manager350052李四2Secretary120033王五3Driver150024韩六4Engineer30004departmentDepIDName1经理室2项目部3财务部4市场部5运输部6后勤部educationEduIDName_1_初中_2_高中_3_大专_4_本科 _5_硕士,_6_w10J.4建立一个实例数据库数据库基础知识建立数据库需要借助于数据库管理系统,不同的数据库管理 系统其具体操作方法是不同的,以Windows平台上的一个 简单的关系型数据库Access为例,建立一个数据库,为编 写Java的数据库访问程序提供一个实例环境 1.启动Office 的Microsoft Access,选择“新建一个 Access数据库选项”,在文件名输入栏中输入“PMS.mdb,该文件代表一个Access数据库iPIS:数据库(Access 2000文件格式)国打开 叱设计也)口新建如 X I气:?图对象门表 且查询 与窗体 眼报表0页 a宏 避模块蛆国|使用向导创建表旦)通过输入数据创建表出收藏夹回区10J.4建立一个实例数据库数据库基础知识PMS数据库窗口出现在Access主窗口中。在数据库窗口的 左侧,列出了常用的7类数据库对象。当选中某对象类后,就可以在右窗口中进行有关该对象的操作,如建立、修改,运行等。7类对象的主要含义分别是:-表一关系表,可以实现的操作包括表的建立、数据的维护、查 询等-查询一可以建立一个查询(视图的概念),还可以运行SQL语 句-窗体一数据库应用界面,可进行简单数据库应用开发-报表一报表的制作与打印输出一页一可生成基于web页面的数据库应用界面-宏一可定义完成特定任务的操作或操作集*;模块一可定义数据库中使用的公共过程与函数、/10.1,4建立一个实例数据库数据库基础知识2.在对象栏中选择“表”,再选择“使用设计器创建表”方式,单击工具栏中的“设计”按钮,就会出现表设计窗口。在该窗口中可以定义字段的名称、数据类型、字段说明信息 等。分另U设计Person表、Department表、Education表 Person:表字段名称 I 数据类型 I 说明字本字本字字 数文数文数数员工编号员工姓名 所在部门编号职箔工资 学历编号字段雇性常犯查阅 字段大小 格式 小数位数 输入括码 标题 默认值 有效性规则长整型自动0字段名称最长可到64个字符(包括 可查看有关字段名称的:10.1,4建立一个实例数据库 Departent:表字段名称Name数据类型数字文本部门编号 部门名称说明数据库基础知识字段属性常规查阅 字段大小 格式 小数位数 输入掩码 标题长整型自动 Educat ion:表字段名称_I 数据类型 I_数字文本教育程度编号 教育程度说明字段属性阅 查 规 常段式数入题认 字格小输标默小 大数码 位施值长整型自动字段名称最长可到64个字符包|10J.4建立一个实例数据库3.建立表之间的联系数据库基础知识点击主窗口 工具”菜单中的“关系”选项,打开“关 系”视图用鼠标拖动Education表的EdulD属性,拉到Person表的 Education属性上,在自动弹出的“编辑关系”对话框中,选择实施参照完整性,点击“创建”按钮用同样方法建立Department表中Depl D歹!J和Person表中关系10.1.4建立一个实例数据库4.为每个表创建数据数据库基础知识 Person:表*HD|Maae_I Depar t,ent|Occupation|Salary2 3 4三四五六 张李王韩23Manager 3500Secretory DriverEngineer 3000012001500O回因Educati on5324记录:|I I11米I共有记录数:3 Department:表004H Education:表百回园室部部部部部 理目务场输勤 经项财市运后 1 2 3 4 5 6中中专科士士 初高大本硕博记录:l I|X|米|共有记录数:610J.5 SQL语言简介数据库基础知识 SQL语言-关系数据库的标准语言,从大型数据库(如Oracle)到 微机数据库(如Access)都支持-可以实现对数据库的各种操作。例如 表及其他数据库对象的定义 数据的查询与数据维护 对数据库进行控制-是非过程化的语言,只需要告诉数据库做什么,而不需 要描述怎么做-语句都是独立执行的,无上下文联系 人 本身不区分大小写10.1.5 SQL语言简介(续)-SQL关键字数据库基础知识SQL关键字描述SELECT从一个或多个表中提取数据FROMSELECT查询的数据表格WHERE决定数据行被提取、删除或更新的标准GROUP BY对行进行分组的标准ORDER BY对行进行排序的标准INNER JOIN合并多个表格中的行INSERT向指定表中插入行UPDATE更新指定表中的行DELETE删除指定表格中的行10.1.5 SQL语言简介(续)-SQ L语言的 读/写 操作数据库基础知识在SQL语言中,对数据库中数据的操作可分为读 写两种-读操作(查询)通过SELECT语句实现,该语句的执行 不会改变数据库中的数据可以返回一行或多行数据也可能没有返回结果(没有查到满足条件的记录)-涉及到写操作的语句共有3个INSERT UPDATEDELETE10.1.5 SQL语言简介(续)-建表语句数据库基础知识建表语句-定义表中各列的名称及数据类型-有关列的数据类型可参考具体数据库的语法手册CREATE TABLE person(id INTEGER PRIMARY KEY,定义该列为主码 name VARCHAR(10),列定义,字符型 department INTEGER,列定义,整型occupation VARCHAR(10),salary NUMBER,、education INTEGER);、A(10.1.5 SQL语言简介(续)-插入语句插入语句数据库基础知识-向指定表插入一条记录,插入的值要与表的定义匹配插入一行数据NSERT INTO table_nameVALUES(valuel,value2,.)插入一行数据在指定的字段上INSERT INTO table_name(columnl,column2,.)VALUES(valuel,value2,.)-例如在person表中插入一行 INSERT INTO personVALUES(1,张三1,manager;3500,5);10.1.5 SQL语言简介(续)-修改语句数据库基础知识修改语句-修改指定记录中某列的值,更新表中原有数据-其格式为UPDATE table_name SET column_name=new_value WHERE column_name=some_value-例如:将person表中id号为1的人员的工资修改为3700元UPDATE personSET salary=3700 指定对哪列进行修改、如何修改WHERE id=1;选择要修改的行10.1.5 SQL语言简介(续)-删除语句数据库基础知识删除语句-删除表中的指定的数据-其格式为DELETE FROM table_name WHERE column_name=some_value-例如删除部门号为4的员工记录DELETE FROM person WHERE department=4;10.1.5 SQL语言简介(续)-查询语句数据库基础知识查询语句-从指定表中取出指定的数据SELECT selectjist INTO new_table FROM table_source WHERE search_condition GROUP BY group_by_expression HAVING search_condition ORDER BY order_expression ASC|DESC 10.1.5 SQL语言简介(续)-查询语句数据库基础知识-例:查询工资大于2000的员工的姓名及职务SELECT*/号表示输出全部列的值FROM person/指定查询的表,本查询只用到person表 WHERE salary2000;查询条件-例:查询员工“张三”的学历,输出学历名SELECT education.nameFROM person,education 该查询用到两个表WHERE person.name=张三AND person.education=education.eduid;10-2通过JDBC访问数据库 JDBC(Java DataBase Connectivity)一是用于执行SQL语句的Java应用程序接口,由一组用 Java语言编写的类与接口组成,是一种底层API-使开发人员可以用纯Java语言编写完整的数据库应用 程序-用JDBC写的程序能够自动地将SQL语句传送给几乎任何一种数据库管理系统(DBMS)10-2通过JDBC访问数据轻(续)JDBC通过JDBC访问数据库 JDBC(Java DataBase Connectivity)-是一种规范,它让各数据库厂商为Java程序员提供标准 的数据库访问类和接口,这样就使得独立于DBMS的 Java应用开发工具和产品成为可能-隔离了Java与不同数据库之间的对话,使得程序员只须 写一遍程序就可让它在任何数据库管理系统平台上运行-使用已有的SQL标准,并支持其它数据库连接标准,如 与ODBC之间的桥接 飞10-2通过JDBC访问数据库(续)Java程序通过JDBC访问数据库的关系通过JDBC访问数据库区(续)ODBC通过JDBC访问数据库 ODBC(OpenDatabaseConnectivity)-由微软公司提出,用于在数据库管理系统(DBMS)中存取 数据-是一套用C语言实现的访问数据库的API-通过ODBCAPL应用程序可以存取保存在多种不同数据 库管理系统(DBMS)中的数据,而不论每个DBMS使用 了何种数据存储格式和编程接口-对于没有提供JDBC驱动的数据库,从Java程序调用本地 的C程序访问数据库会带来一系列安全性、完整性、健壮 性等方面的问题,因而通过JDBC-ODBC桥来访问咚理提 供JDBC接口的数据库是一个常用的方案 K ODBC管理器v-ODBC驱动程序v-4库凤续)-ODBC的不足通过JDBC访问数据库 ODBC的不足-是一个C语言实现的API,并不适合在Java中直接使用。从 Java程序调用本地的C程序会带来一系列类似安全性、完 整性、健壮性的缺点-完全精确地实现从C代码ODBC到Java API写的ODBC的翻 译也并不令人满意。比如,Java没有指针,而ODBC中大 量地使用了指针,包括极易出错的无类型指针“void*。-ODBC并不容易学习,它将简单特性和复杂特性混杂在一 起,甚至对非常简单的查询都有复杂的选项。而JDB,刚、/好相反,它保持了简单事物的简单性,但又允许复欣将山性 V/10.2通过JDBC访问数据库(续)通过JDBC访问数据库 JDBC API-是一组由Java语言编写的类和接口,包含在 java.sql 和 javax.sql 两个包中 java.sql为核心包,这个包包含于J2SE中 javax.sql包扩展了JDBC API的功能,成为了J2EE的 一个基本组成部分-可分为两个层次面向底层的JDBC Driver API-主要是针对数据库厂商开发数据库底层驱动程序使用面向程序员的JDBC API10-2通过JDBC访问数据通过JDBC访问数据库应用程序通过JDBC API和底层的JDBC Driver API打交道JDBC API_ JDBCDRIVER API10.凤续)-JDBC 的 Driver 类型通过JDBC访问数据库 JDBC的Driver可以分为4种类型名称解释JDBC-ODBC 和 ODBC Driver通过ODBC驱动器提供数据库连接。使用这种驱 动器,要求每一台客户机都装入ODBC驱动。Native-API partly-Java Driver将数据库厂商的特殊协议转换成Java代码及一进 制类码,客户机上需要装有相应DBMS的驱动程 序。JDBC-Net All-Java Driver将JDBC指令转化成独立于DBMS的网络协议形 式,再由服务器转化为特定DBMS的协议形式。目前一些1商已经开始添加JDBC的这种驱动器 到它们已有的数据库中介产品中。,.Native-protocol All-Java Driver将JDBC指令转化成网络协议后不再转隔网明由DBMS直接使用。K/,10.凤续)-JDBC 的 Driver 类型通过JDBC访问数据库在这四种驱动器中,后两种“纯Java”的驱动器效 率更高,也更具有通用性,它们能够充分表现出 Java技术的优势,例如可以在叩plet中自动下载 需要的JDBC驱动器如果不能得到纯Java的驱动器,则可以使用前两 种驱动器作为中间解决方案,因为它们比较容易 获得,使用也较普遍。后面的例子就是用JDBC-ODBC Bridge驱动器完成的、10.-JDBC API的任务通过JDBC访问数据库面向程序员的JDBC API可以完成以下主要 任务-首先建立和数据源的连接-然后向其传送查询和修改等SQL命令最后处理数据源返回的SQL执行的结果10-2通过JDBC访问数据-JDBC API中重要的接口和类通过JDBC访问数据库名称解释DriverManager处理驱动的调入并且对产生新的数据库连 接提供支持DataSource在JDBC 2.0 API中被推荐使用代替DriverManager实现和数据库的连接Connection代表对特定数据库的连接Statement代表一个特定的容器,容纳并执行一条SQL语句Results et控制执行查询语句得到的结果辱 今10.2通过JDBC访问数据库(续)JDBC程序开发步骤通过JDBC访问数据库一个基本的JDBC程序开发包含如下步骤-设置环境,引入相应的JDBC类-选择合适的JDBC驱动程序并加载-分配一个Connection对象-分配一个Statement对象-用该Statement对象进行查询等操作-从返回的ResultSet对象中获取相应的数据关闭Connection1021设置环境通过JDBC访问数据库在本机上安装有关数据库软件下载相应数据库驱动程序并安装在Java程序中引入相应的类和包。任何使用JDBC的源程序 都需要引入ava.sql包,如必要的时候还需要装载相应的 JDBCQDBC驱动程序的包import java.sql.*;import sun.idbc.odbc.JdbcOdbcDriver;1021设立环境(建)-通过J D BC6d Bfc桥访问数据库通过JDBC访问数据库通过JDBCQDBC桥访问数据库-安装 Java 和 JDBC API安装JDK的同时就自动安装了-安装数据库驱动程序安装JDK的同时就自动安装了安装JDBC-ODBC桥驱 动程序-安装DBMS-建立一个数据库,并注册数据源1021设置环境(续)-注册数据源通过JDBC访问数据库1.确定数据源名称和说明。依次进入本机的控制面板 管理工具数据源(ODBC),弹出“ODBC数据源管 理器”对话框,单击“系统DSN”选项卡,选择 Add”按钮尸 ODBC Data Source AdministratorTracing|Connection Pooling|AboutUser DSN System DSN|File DSN|DriversSystem Data Sources:Name I Driver I Add.An ODBC System data source stores information about how to connect to the indicated data provider.A System data source is visible to all users on this machine,including NT services.确定 I 取消 I 应用 I 帮助10.2J设Jt环境(续)-注册数据源通过J D B C访问数据库2,单击“添加”按钮后弹出“创建数据源”对话框,选择“Microsoft AccessDriver”选项。单击“完成”按钮后,弹出“ODBC Microsoft Access安装”对话框,在“数据源名”输入框中填写“PIMS”;在“说明”输入中填写“员工信息管理系统”;单击选择按钮,弹出“选择数据库”对话框,在目录中选定刚刚建 好的数据库文件“PMS.mdb”ODBC licrosoft Access 安装数据源名国):PIMS说明也):员工息系统数据库数据库:E:.ChapterlOAccess_DBMSPMS.mdb迤择创建|修土|压缩也)|系统数据库6无鱼)数据库建):系统数据库置).0选项)10.2J设Jt环境(续)-注册数据源通过JDBC访问数据库3.单击“高级”按钮,弹出“设置高级选项”对话框,在“登录名 称”文本编辑框中设定登陆名称为“Test”,在“密码”文本编辑框 中设定密码为“1234”。依次确定返回到“ODBC数据源管理器”对 话框,这时可以发现“系统数据源”选项中增添了一个新确定的数 据源“PIMS”,单击“ODBC Microsoft Access”对话框的“确定”按钮,就完成了数据源的注册设置高级选项 区I10.2.2建立连接通过JDBC访问数据库接下来要建立和DBMS的连接。包括两个步骤-装载驱动器,用Class.forName方法显式装载驱动程序,如:Class.forName(sun.jdbc.odbc.JdbcOdbcDriver,);以完整的Java类名字符串为参数,装载此类,并返回一个Class对 象描述此类执行上述代码时将自动创建一个驱动器类的实例,并自动调用驱 动器管理器DriverManager类中的RegisterDriver方法来注册它 这里“sun.jdbc.odbc.JdbcOdbcDriver”是驱动器类的名字,可以 从驱动程序的说明文档中得到需要注意的是,如果驱动器类有可能不存在,使用此方法就可能 会抛出ClassNotFoundException异常,因此需要捕获3个异超try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);catch(ClassNotFoundException e)System.out.println(eaetMessage);*10.2.2建立连接(续)建立连接通过JDBC访问数据库建立与数据库的连接,调用DriverManageigetConnection()方法。例如,我们要连接上一节创建的Access数据库PIMS,语句如下:Connection con=DriverManager.getConnection(jdbc:odbc:PIMS,“test,1234);将返向与指定数据库建立的连接该方法有三个字符串参数-第一个是JDBC URL,格式为jdbc:子协议:子名称 Jdbc表示协议,JDBC URL中的协议总是jdbc;子协议是驱动器名称;子名称是数据库的名称,如果是位于远程服务器上的数据库,则还应 该包括网络地址,主机名:端口/数据库名第二个是访问数据库所需的用户名 第三个是用户密码 Connection是一?接口,表示与指定数据库的连接 _/.7ADriverMana并r类位于JDBC的管理层,作用于用户和驱动缺之旌 它负责跟踪圣一个系统中所有可用的JDBC驱动程序弋并在薮融库布 相应驱动程序之间建立连接 一通过JDBC访问数据库建立好到数据库的连接后,就可以进行对数据库 的操作了,一般包括如下三个步骤-使用Connection对象创建Statement对象-使用Statement对象执行SQL命令-从上一步骤返回的Res3tset对象中提取执行结果通过JDBC访问数据库10.2.3对数据库进行操作(续)-创建Statement对象 Connection接口有3个方法可用来创建向数据库 发送SQL语句的对象-createStatement创建向数据库发送SQL语句的Statement对象,用于简单的SQL语句Statement stmt=con.createStatement();-prepareStatement创建向数据库发送SQL语句的PreparedStatement对象,用 于带有一个或多个参数的SQL语句。在SQL语句执行前,这 些参数将被赋值-prepareCall/、创建向数据库发送SQL语句的CallableStatement对象;/于调用数据库中的存储过程 V通过JDBC访问数据库10.2.3对数据库进行操作(续)-使用Statement对象执行语句Statement接口提供了三种执行SQL语句的方法,使用哪一个 方法由SQL语句所产生的内容决定executeQuery 用于产生单个结果集的语句,例如SELECT语句ResultSet rs=stmt.executeQuery(HSelect*From Person);executellpdate 用于执行 INSERT、UPDATE 或 DELETE 语句,以及 CREATE TABLE stmt.executeUpdate(DELETE FROM Person WHERE Name李四);返回值是一个整数,表示受影响的行数(即更新计数),比如修改了多少 行、删除了多少行等。对于CREATE TABLE等语句,因不涉及到行的操 作,所以executellpdate的返回值总为零Execute 用于执行返回多个结果集(ResultSet对象)、多个更新计数尊者维,的语句。例如执行某个已存储过程或动态执行SQL,这时有可,能变现多个 结果的情况 r提取执行结果通过JDBC访问数据库查询结果作为结果集(ResultSet)对象返回后,我们可以从ResultSet对象中提取结果-使用next方法 ResultSet对象中含有检索出来的行,其中有一个指示器,指向当前可操作的行,初始状态下指示器是指向第一行之前方法next的功能是将指示器下移一行,所以第一次调用next 方法时便将指示器指向第一行,以后每一次对next的成功调用都会将指示器移向下一行提取执行结果通过JDBC访问数据库-使用getXXX方法使用相应类型的getXXX方法可以从当前行指定列中提取 不同类型的数据。例如,提取VARCHAR类型数据时就要 用getString方法,而提取FLOAT类型数据的方法是 getFloat允许使用列名或列序号作为getXXX方法的参数 String s=rs.getString(nName);-提取当前行Name列中的数据,并把其从SQL的VARCHAR 类型转换成Java的String类型,然后赋值给对象sString s=rs.getString(2);提取当前行的第2列数据 这里的列序号指的是结果集中的列序号,而不是原表生 序号例10 1通过J D B C访问数据库通过JDBC访问PIMS数据库,进行查询、添加操作import java.sql.*;public class ex10_1 public static void main(String args)throws Exception String DBDriver=sun.jdbc.odbc.JdbcOdbcDriver;String connectionStr=jdbc:odbc:PIMS;Connection con=null;Statement stmt=null;ResultSet rs=null;Class.forName(DBDriver);/加载驱动器con=DriverManager.getConnection(connectionStr,Test,1234);/连接数据库stmt=con.createStatement();仓U建Statement对象 rs=stmt.executeQuery(Select*From Person);查 while(rs.next()显示所有记录的ID和姓玄:KSystem.out.print(rs.getlnt(ID,)+,);System.out.println(rs.getString(Name)+,5-例 10_1通过JDBC访问数据库stmt.executeUpdate(INSERT INTO Person丫人1_15(9,林时3匕8011河2爪,2000,4);/添加一条记录System.out.println(添加数据后的信息为)rs=stmt.executeQuery(Select*From Person);/查询表格 while(rs.next()显示System.out.print(rs.getlnt(ID)+H);System.out.println(rs.getStnng(Name)+H H););stmt.executeUpdate(DELETE FROM Person WHERE Name士林时System.out.println(喻除数据后的信息为:”);rs=stmt.executeQuery(Select*From Person);/查询表格while(rs.next()显示System.out.print(rs.getlnt(ID)+H);System.out.println(rs.getStnng(NameH)+H”););stmt.close();关闭语句 con.close();关闭连接10.2.3对数据库进行操作(续)-例10_1运行结果执行结果为三四五六数三四五六时 张李王韩加张李王韩林 1 234 添 12349三四五六 张李王韩 12 3 4可见数据库中的确是先增加了 一条记录,通过J D B C访问数据库例 10_2通过JDBC访问数据库建立员工信息输入与统计界面,实现一个图形用 户界面的数据库应用程序-按“员工登记按钮后弹出的员工记录录入界面-菜单“选项”包括“员工登记”和“员工统计”两个菜 单项。点击“员工统计”将显示出当前员工数察员工信息选项系统员工登记系统员工登记退出系统察员工信息国回区确定共有4名员工选项系统员工登记:登记系统统计退出系统10.2-4执行带参数的SQL语句通过JDBC访问数据库JDBC支持带参数的SQL语句的执行,这给 SQL语句的执行带来很大的灵活性 使用该功能时不能使用Statement类对象,必 须利用PreparedStatement类对象10.2.4执行带参数的SQL语句(续)-例 10_3通过JDBC访问数据库import java.sqL;public class Ex10_3 public static void main(String args)throws Exception String DBDriver=sun.jdbc.odbc.JdbcOdbcDriverM;String connectionStr=jdbc:odbc:PIMS;Class.forName(DBDriver);Connection con=DriverManager.getConnection(connectionStr,Test7,1234);String sq=UPDATE person SET salary=?WHERE name=?/设置了 2个参数 PreparedStatement pstmt=con.prepareStatement(sq);pstmt.setlnt(1,5000);为第1个参数赋值,根据参数类型的不同调用不同方法pstmt.setString(2张三”);为第2个参数赋值pstmt.executellpdateO;/执行SQL语句pstmt.close();关闭语句 片/Wcon.close();关闭连接 K10.3本章小结本章内容-数据库的基本概念基本SQL语句的使用-Java程序中如何实现对数据库的操作本章要求-了解关系型数据库和SQL的基本概念 了解JDBC和ODBC访问数据库的机制 熟悉通过JDBC访问数据库的编程实现