版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JaVa程序设计任务式教程01任务9-1使用JDBC连接图书管理系统数据库02任务9-2实现显示图书信息的功能目录CONTNETS单元九
JDBC数据库编程03任务9-3实现图书数据的添加、修改和删除功能单元目标能够对数据库与数据表进行创建、查看、修改和删除操作。能够编写SQL语句进行数据的增、删、改、查操作。能够使用JDBC进行数据库的连接、查询、更新和删除等操作。培养学生在实际项目中应用JDBC进行数据库操作的能力。培养学生在使用JDBC时注重代码规范和安全性的习惯。知识目标能力目标素养目标学习目标掌握JDBC连接数据库的方式。掌握MySQL数据库、数据表与数据的基本操作。掌握JDBC操作数据库的方式。01任务9-1使用JDBC连接图书管理系统数据库JDBC简介下载并添加数据库驱动加载驱动程序创建数据库连接对象SQL概述创建与查看数据库使用、修改和删除数据库任务9-1使用JDBC连接图书管理系统数据库-JDBC简介JDBC简介JDBC(JavaDatabaseConnectivity,Java数据库连接),它是一套用于执行SQL语句的JavaAPI。应用程序可通过这套API连接到关系型数据库,并使用SQL语句来完成对数据库中数据的查询、新增、更新和删除等操作。应用程序使用JDBC访问数据库的方式如图JDBC在应用程序与数据库之间起到了一个桥梁作用,当应用程序使用JDBC访问特定的数据库时,只需要通过不同的数据库驱动与其对应的数据库进行连接,连接后即可对该数据库进行相应的操作任务9-1使用JDBC连接图书管理系统数据库-使用JDBC连接数据库下载并添加数据库驱动1.下载MySQL8.4.0驱动,在浏览器中访问MySQL官网2.单击“SelectOperatingSystem…”下拉框,选择PlatformIndependent选项,显示独立于平台的MySQL8.4.0的驱动压缩包任务9-1使用JDBC连接图书管理系统数据库-使用JDBC连接数据库下载并添加数据库驱动3.单击PlatformIndependent(ArchitectureIndependent),ZIPArchive(Windows系统对应的MySQL驱动)后的“Download”按钮,进入MySQLCommunityDownloads页面4.单击页面左下角的“Nothanks,juststartmydownload.”,开始下载MySQL的驱动压缩包mysql-connector-j-8.4.0.zip任务9-1使用JDBC连接图书管理系统数据库-使用JDBC连接数据库加载驱动程序1.在Eclipse中创建一个名为Chapter09的程序,然后选中该程序右击,在弹出的菜单列表中选择New→Folder选项,会弹出一个创建文件夹的窗口2.在Foldername右侧的输入框中输入文件夹的名称lib,该文件夹用于存放Chapter09程序中需要的库文件,单击“Finish”按钮,创建lib文件夹。创建完lib文件夹后,解压mysql-connector-j-8.4.0.zip压缩包,将解压后得到的mysql-connector-j-8.4.0.jar(MySQL驱动JAR包)复制到lib文件夹中,并选中该JAR包,右击选择BuildPath→AddtoBuildPath选项,此时会将MySQL的驱动JAR包添加到Chapter09程序中,添加后的效果如图任务9-1使用JDBC连接图书管理系统数据库-使用JDBC连接数据库加载驱动程序加载数据库驱动通常使用Class类的静态方法forName()来实现,具体实现方式Class.forName("DriverName");上述代码中,DriverName就是数据库驱动类所对应的字符串。例如,要加载MySQL数据库的驱动可以采用如下代码://加载8.0版本之前的MySQL数据库驱动Class.forName("com.mysql.jdbc.Driver");//加载8.0版本之后的MySQL数据库驱动Class.forName("com.mysql.cj.jdbc.Driver");加载Oracle数据库的驱动可以采用如下代码:Class.forName("oracle.jdbc.driver.OracleDriver");任务9-1使用JDBC连接图书管理系统数据库-使用JDBC连接数据库创建数据库连接对象使用JDBC创建连接数据库的对象时,需要用到Connection接口和DriverManager类,Connection接口代表Java程序和数据库的连接对象,只有获得该连接对象后,才能访问数据库,并操作数据表。DriverManager类主要用于加载JDBC驱动并建立与数据库的连接。在Connection接口中,定义了一系列方法,其常用方法如下所示。StatementcreateStatement():用于返回一个向数据库发送语句的Statement对象。PreparedStatementprepareStatement(Stringsql):用于返回一个PreparedStatement对象,该对象用于向数据库发送参数化的SQL语句。CallableStatementprepareCall(Stringsql):用于返回一个CallableStatement对象,该对象用于调用数据库中的存储过程。在DriverManager类中,定义了两个比较重要的静态方法,如下所示。staticsynchronizedvoidregisterDriver(Driverdriver):用于向DriverManager类中注册给定的JDBC驱动程序。staticConnectiongetConnection(Stringurl,Stringuser,Stringpwd):用于建立和数据库的连接,并返回表示连接的Connection对象。任务9-1使用JDBC连接图书管理系统数据库-使用JDBC连接数据库创建数据库连接对象通常不使用DriverManager.registerDriver(Driverdriver)这种方式注册驱动,因为选择要注册的JDBC驱动类com.mysql.jdbc.Driver中有一段静态代码块,是向DriverManager类注册一个Driver实例,当再次执行DriverManager.registerDriver(newDriver())代码的时候,静态代码块也已经执行了,相当于实例化了两个Driver对象,因此在加载数据库驱动时通常使用Class类的静态方法forName()来实现当想要使用JDBC建立并获取数据库连接对象时,需要使用DriverManager类中提供的getConnection()方法,建立并获取数据库连接的方式如下:Connectionconn=DriverManager.getConnection(Stringurl,Stringuser,Stringpwd);上述代码中,getConnection()方法中有3个参数,第1个参数url表示连接数据库的URL,第2个参数user表示登录数据库的用户名,第3个参数pwd表示登录数据库的密码。用户名和密码由数据库管理员设置,连接数据库的URL则需要遵循一定的书写格式,以MySQL数据库为例,其地址的书写格式如下:jdbc:mysql://hostname:port/databasename任务9-1使用JDBC连接图书管理系统数据库-MySQL数据库的操作SQL概述SQL(StructuredQueryLanguage,结构化查询语言)是用于管理关系型数据库系统中数据的标准语言。SQL支持与数据库建立联系并进行沟通,支持对数据库进行各种操作,包括添加、删除、修改和查询数据。SQL是一种声明式语言,它不需要指定如何执行操作,而是让数据库管理系统来决定最有效的执行方法。SQL语句结构简洁、功能强大,其主要特点如下所示。1.简单易学它都是由描述性很强的英语单词组成的,且数目不多、不区分大小写。2.综合统一SQ综合了数据库定义语言、数据操作语言、数据控制语言的功能,它可以对关系模式、数据、数据库、数据库重构以及数据库安全性控制等方面进行一系列操作要求。3.高度非过程化SQ操作数据库只需指出“做什么”,无须指明“怎么做”,存取路径的选择和操作的执行均由数据库自动完成。4.面向集合的操作方式不仅SQL的查询结果可以是元组的集合,而且SQL的插入、删除、更新操作的对象也可以是元组的集合。任务9-1使用JDBC连接图书管理系统数据库-MySQL数据库的操作SQL概述SQL语句包含了所有对数据库的操作,它主要由4个部分组成,具体如下。1.DDL(DatabaseDefinitionLanguage,数据库定义语言)DD用于定义或改变表的结构、数据类型、表之间的链接和约束等初始化工作。DDL常用的语句关键字包括CREATE、DROP、ALTER等。2.DML(DataManipulationLanguage,数据操作语言)DM用于对数据进行操作,常用的语句关键字有INSERT、UPDATE、DELETE,分别代表插入、更新与删除,以支持开发以数据为中心的应用程序。3.DQL(DataQueryLanguage,数据库查询语言)DQ用于对数据进行查询。DCL主要关键字包括SELECTFROM、WHERE。4.DCL(DataControlLanguage,数据控制语言)DCL主要用于对数据访问权限进行控制,定义数据库、表字段、用户的访问权限和安全级别,主要关键字包括GRANT、REVOKE、COMMIT和ROLLBACK。GRANT语句用于给用户添加权限;REVOKE语句用于收回用户的权限;COMMIT语句用于提交事务;ROLLBACK语句用于回滚事务。任务9-1使用JDBC连接图书管理系统数据库-MySQL数据库的操作创建与查看数据库1.创建数据库在MySQL中,创建一个指定名称的数据库,语法格式如下。CREATEDATABASE数据库名称;在上述语法格式中,“数据库名”表示需要创建的数据库名称。数据库命名需要注意以下3点。(1)数据库名称是唯一的,且区分大小写(Windows中不区分大小写)。(2)可以由字母、数字、下画线、@、#、$组成。(3)不能使用关键字。下面创建一个名为school的数据库,具体语句与执行结果如下所示。mysql>CREATEDATABASEschool;QueryOK,1rowaffected(0.01sec)验证数据库系统中是否创建了名为school的数据库,则需要通过SQL语句“SHOWDATABASES;”查看当前所有数据库,具体语句与执行结果如下所示。mysql>SHOWDATABASES;任务9-1使用JDBC连接图书管理系统数据库-MySQL数据库的操作查看数据库查看指定数据库的创建语句和属性信息的语法格式如下。SHOWCREATEDATABASE数据库名称;任务9-1使用JDBC连接图书管理系统数据库-MySQL数据库的操作查看数据库查看指定数据库的创建语句和属性信息的语法格式如下。SHOWCREATEDATABASE数据库名称;MySQL返回了一个结果集,其中包含了创建数据库school的SQL语句以及相关的属性信息,其中“utf8mb4”表示默认的字符集,“utf8mb4_0900_ai_ci”表示校对规则,“ENCRYPTION='N'”表示加密选项为“N”,即数据库中的数据不使用默认的加密方式进行加密任务9-1使用JDBC连接图书管理系统数据库-使用、修改和删除数据库使用数据库1.使用数据库使用USE命令指定使用的数据库,语法格式如下。USE数据库名需要注意的是,在SQL语句中,通常以“;”结尾,而USE不是SQL语句,所以并不强制要求以“;”。“USE数据库名”也可以使用“\u数据库名”代替。使用USE命令演示如何将数据库切换到school数据库,具体命令与执行结果如下所示。mysql>USEschoolDatabasechanged2.修改数据库在创建数据库时可选择使用自定义或默认的字符集。数据库创建完成之后,若想修改数据库的字符编码,可以使用ALTERDATABASE语句实现,语法格式如下。ALTERDATABASE数据库名称DEFAULTCHARACTERSET编码方式COLLATE编码方式_bin;下面演示如何将school数据库的字符编码修改为gbk,具体语句与执行结果如下所示。mysql>ALTERDATABASEschoolDEFAULTCHARACTERSETgbkCOLLATEgbk_bin;QueryOK,1rowaffected(0.01sec)任务9-1使用JDBC连接图书管理系统数据库-使用、修改和删除数据库使用数据库3.删除数据库删除数据库的语法格式如下。DROPDATABASE数据库名称;数据库被删除后,数据库中所有的数据都会被清除,即数据库分配的空间会被收回。下面演示如何删除school数据库,具体语句与执行结果如下所示。mysql>DROPDATABASEschool;QueryOK,0rowsaffected(0.01sec)1.创建图书管理系统的数据库booksystem。创管理系统数据库booksystem的具体语句与执行结果如下所示。myREATEDATABASEbooksystem;Qu,1rowaffected(0.01sec)2.加载数据库的驱动,并创建MySQL数据库连接。在r09程序的src文件夹中创建名为com.example.book的包,该包用于存放图书管理系统的代码。然后在com.example.book包中创建JDBCUtils类,在该类中实现加载数据库驱动,并创建数据库连接3.使用JDBC连接图书管理系统的数据库booksystem。代码参考教材中的JDBCUtils.java任务9-1使用JDBC连接图书管理系统数据库-任务实现02任务9-2实现显示图书信息的功能创建与查看数据表修改与删除数据表添加数据查询数据更新数据删除数据任务9-2实现显示图书信息的功能-MySQL数据表的操作创建与查看数据表1.创建数据表创建数据表的过程是规定数据列属性的过程,同时也是实现数据库数据完整性和约束性的过程。创建数据表的基本语法格式如下。上述语法格式中,关键字的说明如表关键字说明表名表示需要创建表的名称字段名表示数据列的名字数据类型指的是每列参数对应的数值类型,可以为int、char、varchar等表选项代表在创建表时可以单独指定使用的存储引擎和默认的字符编码。例如:ENGINE=InnoDBDEFAULTCHARSET=utf8任务9-2实现显示图书信息的功能-MySQL数据表的操作创建与查看数据表1.创建数据表创建数据表之前需要使用“USE数据库名”切换到要操作的数据库。下面在数据库school中创建一个学生表student,具体步骤如下所示。(1)创建数据库school,具体语句与执行结果如下所示。mysql>CREATEDATABASEschool;QueryOK,1rowaffected(0.01sec)(2)切换至数据库school,具体语句与执行结果如下所示。mysql>USEschool;Databasechanged任务9-2实现显示图书信息的功能-MySQL数据表的操作创建与查看数据表1.创建数据表student表的表结构如表字段名称数据类型说明stu_idINT(10)学生编号stu_nameVARCHAR(50)学生姓名stu_ageINT(10)学生年龄(3)创建数据表student,具体语句与执行结果如下所示。mysql>CREATETABLEstudent(->stu_idINT(10),->stu_nameVARCHAR(50),->stu_ageINT(10)->);QueryOK,0rowsaffected(0.08sec)任务9-2实现显示图书信息的功能-MySQL数据表的操作查看数据表(1)使用SHOW语句查看数据表,语法格式如下。SHOWCREATETABLE表名;上述语法格式中,查询的是创建数据表时字段的定义信息,该方式能够以行的方式显示表结构。下面使用SHOW语句查看student表的表结构,具体语句与执行结果如下所示任务9-2实现显示图书信息的功能-MySQL数据表的操作查看数据表(2)使用DESCRIBE语句查看数据表的字段信息,语法格式如下。DESCRIBE表名;下面使用DESCRIBE语句查看student表的字段信息,具体语句与执行结果如下所示。mysql>DESCRIBEstudent;任务9-2实现显示图书信息的功能-MySQL数据表的操作查看数据表(2)使用DESCRIBE语句查看数据表的字段信息,语法格式如下。DESCRIBE表名;下面使用DESCRIBE语句查看student表的字段信息,具体语句与执行结果如下所示。mysql>DESCRIBEstudent;任务9-2实现显示图书信息的功能-MySQL数据表的操作修改与删除数据表1.修改数据表下面对修改数据表的表名、字段名、字段的数据类型等表结构信息进行介绍。(1) 修改表名。在同一数据库中,不同的数据表需要通过唯一的表名进行区分,修改数据表名称的语法格式如下。ALTERTABLE原表名RENAME[TO]新表名;上述语法格式中,关键字TO是可选的,不会影响SQL语句的执行,一般忽略不写。下面将student表的表名修改为student_01,具体语句与执行结果如下所示。mysql>ALTERTABLEstudentRENAMEstudent_01;QueryOK,0rowsaffected(0.15sec)任务9-2实现显示图书信息的功能-MySQL数据表的操作修改与删除数据表1.修改数据表下面对修改数据表的表名、字段名、字段的数据类型等表结构信息进行介绍。(2) 修改字段。数据表中的字段是通过字段名划分的。当数据表中的字段存在变更需求时,用户可对字段进行修改,修改字段的语法格式如下。ALTERTABLE表名CHANGE原字段名新字段名新数据类型;下面将student_01表中的stu_age字段修改为stu_birth,设置数据类型为DATE,具体语句与执行结果如下所示。mysql>ALTERTABLEstudent_01CHANGEstu_agestu_birthDATE;QueryOK,0rowsaffected(0.24sec)Records:0Duplicates:0Warnings:0任务9-2实现显示图书信息的功能-MySQL数据表的操作修改与删除数据表1.修改数据表下面对修改数据表的表名、字段名、字段的数据类型等表结构信息进行介绍。(3) 修改字段的数据类型。若不需要修改字段名,只需修改字段的数据类型,那么可以使用MODIFY关键字。使用MODIFY关键字修改表中字段的数据类型的语法格式如下。ALTERTABLE表名MODIFY字段名数据类型;下面将student_01表中的stu_name字段的数据类型修改为CHAR(50),具体语句与执行结果如下所示。mysql>ALTERTABLEstudent_01MODIFYstu_nameCHAR(50);QueryOK,0rowsaffected(0.17sec)Records:0Duplicates:0Warnings:0任务9-2实现显示图书信息的功能-MySQL数据表的操作修改与删除数据表1.修改数据表下面对修改数据表的表名、字段名、字段的数据类型等表结构信息进行介绍。(4)添加新字段。数据表中就需要添加字段。在MySQL中添加字段的语法格式如下。ALTERTABLE表名ADD新字段名数据类型;下面在student_01表中添加class_id字段,设置数据类型为int(10),具体语句与执行结果如下所示。mysql>ALTERTABLEstudent_01ADDclass_idint(10);QueryOK,0rowsaffected(0.18sec)Records:0Duplicates:0Warnings:0任务9-2实现显示图书信息的功能-MySQL数据表的操作修改与删除数据表1.修改数据表下面对修改数据表的表名、字段名、字段的数据类型等表结构信息进行介绍。(5) 删除字段。删除字段是指将某个字段从数据表中删除,语法格式如下。ALTERTABLE表名DROP字段名;下面将student_01表中class_id字段删除,具体语句与执行结果如下所示。mysql>ALTERTABLEstudent_01DROPclass_id;QueryOK,0rowsaffected(0.20sec)Records:0Duplicates:0Warnings:0任务9-2实现显示图书信息的功能-MySQL数据表的操作修改与删除数据表1.修改数据表下面对修改数据表的表名、字段名、字段的数据类型等表结构信息进行介绍。(6) 修改字段的排列位置。字段在表中的排列位置在创建表时就已经被确定,若要修改字段的排列位置,可以使用ALTERTABLE语句。在MySQL中修改字段排列位置的语法格式如下。ALTERTABLE表名MODIFY字段名1数据类型FIRST|AFTER字段名2;任务9-2实现显示图书信息的功能-MySQL数据表的操作删除数据表1.修改数据表使用DROPTABLE语句删除数据表,语法格式如下。DROPTABLE表名;删除数据表时,将会永久删除表及其所有数据。下面将student_01表删除,具体语句与执行结果如下所示。mysql>DROPTABLEstudent_01;QueryOK,0rowsaffected(0.09sec)任务9-2实现显示图书信息的功能-MySQL数据的操作添加数据1.使用INSERTINTO...VALUES语句标准的INSERT语法要为每个插入值指定相应的字段。通过使用INSERT语句指定所有字段名向表中插入数据,语法格式如下。INSERTINTO表名(字段名1,字段名2,……)VALUES(值1,值2,……);2.使用INSERTINTO...SET语句通过使用INSERTINTO...SET语句可以指定所有字段名及其对应的值向表中插入数据,语法格式如下。INSERTINTO表名SET字段名1=值1,字段名2=值2,……;任务9-2实现显示图书信息的功能-MySQL数据的操作查询数据SELECT语句的基本语法格式如下。SELECT字段名1,字段名2,……,字段名nFROM表名;MySQL中提供了通配符“*”来代替所有的字段名。通配符的SQL语法格式如下。SELECT*FROM表名;任务9-2实现显示图书信息的功能-MySQL数据的操作更新数据使用UPDATE语句更新表中的数据,语法格式如下。UPDATE表名SET字段名1=值1[,字段名2=值2,……][WHERE条件表达式];上述语法格式中,“字段名”用于指定需要更新的字段名称,“值”用于表示字段的新值。如果要更新多个字段的值,可以用逗号分隔多个字段和值,“WHERE条件表达式”是可选的,用于指定更新数据需要满足的条件。任务9-2实现显示图书信息的功能-MySQL数据的操作更新数据1.更新全部数据当UPDATE语句中不包含WHERE条件语句时,将会对表中的每一行数据进行更新。这意味着所有行的特定列将被更新为指定的新值。下面使用UPDATA语句将user表中的字段password的所有值更新为默认密码000000,具体语句和执行结果如下所示。mysql>UPDATEuserSETpassword='000000';QueryOK,2rowsaffected(0.01sec)Rowsmatched:2Changed:2Warnings:0由上述结果可知,执行完成后提示了“Rowsmatched:2Changed:2Warnings:0”,说明在执行UPDATE语句时,有2行数据与条件匹配。实际上进行了数据修改的行数为2,并且在执行UPDATE语句时产生的警告数量为0。任务9-2实现显示图书信息的功能-MySQL数据的操作更新数据2.更新部分数据在实际应用开发中,通常需要对数据库表中的特定记录进行更新,而不是对整个表进行更新操作。使用UPDATE语句结合WHERE子句可以实现这一目的。下面使用UPDATE语句与WHERE子句将user表中用户名为lilei的密码修改为“lilei_123”,具体语句和执行结果如下所示。mysql>UPDATEuserSETpassword='lilei_123'WHEREusername='lilei';QueryOK,1rowaffected(0.01sec)Rowsmatched:1Changed:1Warnings:0任务9-2实现显示图书信息的功能-MySQL数据的操作删除数据DELETE语句是SQL支持的所有数据修改语句中常用的语句之一,它用于删除表中的数据,语法格式如下。DELETEFROM表名[WHERE条件表达式];1.删除部分数据在实际开发中,常见的需求是删除表中的特定数据。通常情况下,使用DELETE语句与WHERE子句结合可以指定删除数据的条件。下面使用DELETE语句与WHERE子句将user表中字段username的值为“lilei”的记录删除,具体语句和执行结果如下所示。mysql>DELETEFROMuserWHEREusername='lilei';QueryOK,1rowaffected(0.01sec)由上述结果可知,数据删除完成。2.删除全部数据当DELETE语句中不包含WHERE条件语句时,将会删除表中的所有数据。下面使用DELETE语句将user表中的所有数据都删除,具体语句和执行结果如下所示。mysql>DELETEFROMuser;QueryOK,1rowaffected(0.01sec)1.创建图书表book,并向表中插入初始数据。2.创建图书信息的实体类BookBean。3.根据SQL语句对book表中的数据进行增、删、改、查操作,并封装关闭数据库连接的代码。4.创建图书管理系统界面的FXML文件,并创建该文件对应的控制器,在控制器中实现显示图书信息的功能。5.加载图书管理系统界面,并启动程序。代码参考教材中的BookBean.javaBookDao.javaSimpleTools.javaBookManagementController.javaMain.java任务9-2实现显示图书信息的功能-任务实现运行Main类中的代码,图书管理系统界面的运行效果如图任务9-2实现显示图书信息的功能-任务实现03任务9-3实现图书数据的添加、修改和删除功能执行不带参数的SQL语句执行预编译的SQL语句结果集使用JDBC程序查询学生信息Statement接口用于执行不带参数的静态SQL语句,该接口对象可以通过Connection实例的createStatement()方法获得,该对象会把静态的SQL语句发送到数据库中编译执行,然后返回数据库的处理结果。在Statement接口中,提供了3个常用的执行SQL语句的方法,如表任务9-3实现图书数据的添加、修改和删除功能-使用JDBC操作数据库执行不带参数的SQL语句方法声明功能描述booleanexecute(Stringsql)用于执行SQL语句,该方法的返回值如果为true,表示执行的SQL语句有查询结果,可通过Statement的getResultSet()方法获得查询结果,否则,没有查询结果intexecuteUpdate(Stringsql)用于执行SQL中的insert、update和delete语句。该方法的返回值表示数据库中受该SQL语句影响的记录条数ResultSetexecuteQuery(Stringsql)用于执行SQL中的select(查询)语句,该方法返回一个表示查询结果的ResultSet对象PreparedStatement接口用于执行预编译的SQL语句,它支持参数化查询。预编译的SQL语句指的是提前完成SQL语句的解析、优化和编译过程,同时,通过占位符和参数绑定的方式,有效地防止了SQL注入攻击,提高了数据库操作的执行效率和安全性。PreparedStatement是Statement的子接口,该接口扩展了带有参数SQL语句的执行操作,应用接口中的SQL语句可以使用占位符“?”来代替其参数,然后通过setXxx()方法为SQL语句的参数赋值。在PreparedStatement接口中提供了一些常用方法,具体如表任务9-3实现图书数据的添加、修改和删除功能-使用JDBC操作数据库执行预编译的SQL语句方法声明功能描述intexecuteUpdate()在此PreparedStatement对象中执行SQL语句,该语句必须是一个DML语句或者是无返回内容的SQL语句,如DDL语句ResultSetexecuteQuery()在此PreparedStatement对象中执行SQL查询,该方法返回的是ResultSet对象voidsetInt(intparameterIndex,intx)将指定参数设置为给定的int值voidsetFloat(intparameterIndex,floatx)将指定参数设置为给定的float值voidsetString(intparameterIndex,Stringx)将指定参数设置为给定的String值voidsetDate(intparameterIndex,Datex)将指定参数设置为给定的Date值voidaddBatch()将一组参数添加到此PreparedStatement对象的批处理命令中voidsetCharacterStream(intparameterIndex,java.io.Readerreader,intlength)将指定的输入流写入数据库的文本字段voidsetBinaryStream(intparameterIndex,java.io.InputStreamx,intlength)将二进制的输入流数据写入到二进制字段中ResultSet接口用于保存JDBC执行查询时返回的结果集,该结果集封装在一个逻辑表格中。在ResultSet接口内部有一个指向表格数据行的游标(或指针),ResultSet对象初始化时,游标在表格的第一行之前,调用next()方法可将游标移动到下一行。如果下一行没有数据,则返回false。在应用程序中经常使用next()方法作为while循环的条件来迭代ResultSet结果集。ResultSet接口中的常用方法如表任务9-3实现图书数据的添加、修改和删除功能-使用JDBC操作数据库结果集方法声明功能描述StringgetString(intcolumnIndex)获取指定字段的String类型的值,参数columnIndex代表字段的索引StringgetString(StringcolumnName)获取指定字段的String类型的值,参数columnName代表字段的名称intgetInt(intcolumnIndex)获取指定字段的int类型的值,参数columnIndex代表字段的索引intgetInt(StringcolumnName)获取指定字段的int类型的值,参数columnName代表字段的名称DategetDate(intcolumnIndex)获取指定字段的Date类型的值,参数columnIndex代表字段的索引DategetDate(StringcolumnName)获取指定字段的Date类型的值,参数columnName代表字段的名称booleannext()将游标从当前位置向下移一行booleanabsolute(introw)将游标移动到此ResultSet对象的指定行voidafterLast()将游标移动到此ResultSet对象的末尾,即最后一行之后voidbeforeFirst()将游标移动到此ResultSet对象的开头,即第一行之前booleanprevious()将游标移动到此ResultSet对象的上一行booleanlast()将游标移动到此ResultSet对象的最后一行1.创建数据库与数据表在MySQL数据库中创建一个名为jdbc的数据库,然后在该数据库中创建一个名为student的表,创建数据库和表的SQL语句如下。CREATEDATABASEjdbc;USEjdbc;CREATETABLEstudent( idINTPRIMARYKEYAUTO_INCREMENT, NAMEVARCHAR(40),ageINT, sexVARCHAR(2), emailVARCHAR(60));任务9-3实现图书数据的添加、修改和删除功能-JDBC程序查询学生信息创建数据库与数据表数据库和表创建成功后,再向student表中插入4条数据,插入的SQL语句如下所示。INSERTINTOstudent(NAME,age,sex,email)VALUES('王明',11,'男','wangming@163.com'),('李雷',12,'男','lilei@'),('张红',13,'女','zhanghong@126.com'),('李四',11,'男','lisi@126.com');任务9-3实现图书数据的添加、修改和删除功能-JDBC程序查询学生信息创建数据库与数据表添加完学生信息数据之后,使用SELECT语句查询student表中的数据是否添加成功,查询语句如下所示。select*fromstudent;执行完查询语句后,执行结果如图任务9-3实现图书数据的添加、修改和删除功能-JDBC程序查询学生信息创建数据库与数据表如例9-1所示,在Chapter09程序的com.example.jdbc包中创建名为ExampleJDBC的类,在该类中读取student表中的数据,并将结果输出到控制台中,具体代码ExampleJDBC.java任务9-3实现图书数据的添加、修改和删除功能-JDBC程序查询学生信息查询学生信息表student……8try{9 //1.加载数据库驱动
10 Class.forName("com.mysql.cj.jdbc.Driver");11 //2.通过DriverManager获取数据库连接
12 Stringurl="jdbc:mysql://localhost:3306/jdbc";13 Stringusername="root";14 Stringpassword="root123";15 conn=DriverManager.getConnection(url,username,password);16 //3.通过Connection对象获取Statement对象
17 stmt=conn.createStatement();18 //4.使用Statement执行SQL语句
19 Stringsql="select*fromstudent";20 rs=stmt.exec
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度35KV变电站电气安装工程安全培训合同3篇
- 2024年特色农业土地承包终止合同范本(含后续利用)3篇
- 2025版智慧城市运营商离婚协议与城市信息平台建设与运营合同3篇
- 2025版跨境电商物流居间服务合同范本3篇
- 2025年度精装KTV租赁经营合同3篇
- 2025版高端定制皮革制品生产与销售合作协议3篇
- 2025版互联网+技术股份合作经营框架协议2篇
- 2025版耕地承包与土地整治项目合作合同3篇
- 2024年牲畜养殖技术与设备引进合同样本3篇
- 2025版财产债务分割与处理专业服务合同一键操作!5篇
- 自动洗衣机行星齿轮减速器的设计-毕业论文
- 履带吊验收表
- 世界地理高中世界地理填图练习
- 连续梁施工质量通病及防治
- 机械滑台的控制
- 2018-2019学年第一学期西城小学三年级数学期末试题
- GB-T-12137-2015-气瓶气密性试验方法
- 学生学习挑战书
- 烟叶种植及加工项目可行性研究报告写作范文
- 员工知识产权归属协议
- 八卦象数疗法常见配方最新版
评论
0/150
提交评论