Java与数据库JDBC.ppt
《Java与数据库JDBC.ppt》由会员分享,可在线阅读,更多相关《Java与数据库JDBC.ppt(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第13章章Java与数据库与数据库JDBC姓名姓名性别性别出生日期出生日期职务职务王红王红女女75/03/05工程师工程师张强张强男男70/06/15讲师讲师李刚李刚男男70/07/09工人工人王芳王芳女女65/10/09工程师工程师字段(列)字段(列)记录记录(行)(行)表文件表文件示例:示例:表文件与二维表对应表文件与二维表对应1、创建新表、创建新表student姓名姓名性别性别年龄年龄贾宝玉贾宝玉男男21林黛玉林黛玉女女19猪八戒猪八戒男男22白骨精白骨精女女202 2 2 2、追加新记录、追加新记录、追加新记录、追加新记录命令格式:命令格式:命令格式:命令格式:INSERTINTOI
2、NSERTINTO表名表名表名表名(字段名字段名字段名字段名11,字段名,字段名,字段名,字段名2 2.).)VALUES(VALUES(表达式表达式表达式表达式11,表达式,表达式,表达式,表达式2 2)功能:功能:功能:功能:在表尾追加一个新记录,并直接馈入数据在表尾追加一个新记录,并直接馈入数据在表尾追加一个新记录,并直接馈入数据在表尾追加一个新记录,并直接馈入数据。说明:说明:说明:说明:1.1.表不必是打开的,字段与表达式的类型必表不必是打开的,字段与表达式的类型必表不必是打开的,字段与表达式的类型必表不必是打开的,字段与表达式的类型必须相同。须相同。须相同。须相同。2.2.如果字段
3、名全部缺省,就必须按字段顺序如果字段名全部缺省,就必须按字段顺序如果字段名全部缺省,就必须按字段顺序如果字段名全部缺省,就必须按字段顺序填写填写填写填写 valuesvalues子句的所有表达式。子句的所有表达式。子句的所有表达式。子句的所有表达式。例:为刚建立学生信息表例:为刚建立学生信息表student(student(姓名姓名,性别性别,年年龄龄)填加数据填加数据insertintoinsertintostudentstudentvalues(values(白雪公主白雪公主白雪公主白雪公主,女女女女,16),16)insertintoinsertintostudentstudent(年龄
4、年龄年龄年龄,姓名姓名姓名姓名)values(23,)values(23,白马王子白马王子白马王子白马王子)INSERTINTOINSERTINTO表名表名表名表名(字段名字段名字段名字段名11,字段名,字段名,字段名,字段名2 2.).)VALUES(VALUES(表达式表达式表达式表达式11,表达式,表达式,表达式,表达式2 2)3、用、用Select-SQL命令直接查询命令直接查询简化简化Select-SQL命令格式:命令格式:SELECTSELECT*/*/,.2.FROMFROM 表名表名表名表名 WHEREWHEREANDAND 例例例例1 1:在学生表:在学生表:在学生表:在学生
5、表studentstudent中,查找所有学生的姓名中,查找所有学生的姓名中,查找所有学生的姓名中,查找所有学生的姓名select select 姓名姓名 from from studentstudent 例:在学生表例:在学生表student(姓名(姓名,性别性别,年龄)中,查年龄)中,查找所有学生的记录找所有学生的记录select *from select *from studentstudent SELECT*/,.FROM表名表名WHEREANDWhereWhere子句指定查询条件:列名、比较运算符、列名于常数子句指定查询条件:列名、比较运算符、列名于常数子句指定查询条件:列名、比较运
6、算符、列名于常数子句指定查询条件:列名、比较运算符、列名于常数 常用的比较运算符:常用的比较运算符:常用的比较运算符:常用的比较运算符:=、=、=、!=!=、betweenandbetweenand、andand、oror、notnot例例例例2 2:在学生表:在学生表:在学生表:在学生表studentstudent中,查询所有年龄大于中,查询所有年龄大于中,查询所有年龄大于中,查询所有年龄大于2020的男的男的男的男同学的正确的同学的正确的同学的正确的同学的正确的SQLSQL语句是语句是语句是语句是Select*fromstudentstudentwhere年龄年龄20and性别性别=男男S
7、ELECTSELECT*/*/,.2.FROMFROM 表名表名表名表名 WHEREWHEREANDAND 例例例例3 3:在学生表:在学生表:在学生表:在学生表studentstudent中,查询年龄在中,查询年龄在中,查询年龄在中,查询年龄在2020至至至至2323岁岁岁岁之间的学生姓名和年龄正确的之间的学生姓名和年龄正确的之间的学生姓名和年龄正确的之间的学生姓名和年龄正确的SQLSQL语句是语句是语句是语句是Select姓名姓名,年龄年龄fromstudentstudentwhere年龄年龄=20and年龄年龄=23Select姓名姓名,年龄年龄fromstudentstudentwhe
8、re年龄年龄between20and23SELECTSELECT*/*/,.2.FROMFROM 表名表名表名表名 WHEREWHEREANDAND 4 4 4 4、更新记录、更新记录、更新记录、更新记录命令格式:命令格式:命令格式:命令格式:UpdateUpdate表名表名表名表名 setset字段名字段名字段名字段名1=1=表达式表达式表达式表达式11,字段名,字段名,字段名,字段名2=2=表达式表达式表达式表达式22.)where.)where联结条件联结条件联结条件联结条件 例:例:例:例:updatestudentsetupdatestudentset年龄年龄年龄年龄=20where
9、=20where姓名姓名姓名姓名=贾宝玉贾宝玉贾宝玉贾宝玉 5、删除记录、删除记录命令格式:命令格式:delete*from表名表名where联结条件联结条件n n例:例:例:例:n n deletefromstudentwheredeletefromstudentwhere姓名姓名姓名姓名=贾宝玉贾宝玉贾宝玉贾宝玉 JDBCn n19961996年夏,年夏,年夏,年夏,SunSun公司推出了公司推出了公司推出了公司推出了JavaJava数据库连接(数据库连接(数据库连接(数据库连接(JavaJavaDatabaseConnectivityDatabaseConnectivity,JDBCJD
10、BC)工具包的第一个版本。)工具包的第一个版本。)工具包的第一个版本。)工具包的第一个版本。n n该工具包使得程序员可以使用结构化查询语言(该工具包使得程序员可以使用结构化查询语言(该工具包使得程序员可以使用结构化查询语言(该工具包使得程序员可以使用结构化查询语言(SQLSQL)连)连)连)连接到一个数据库,对数据库进行查询,或者对数据库进行接到一个数据库,对数据库进行查询,或者对数据库进行接到一个数据库,对数据库进行查询,或者对数据库进行接到一个数据库,对数据库进行查询,或者对数据库进行更新。更新。更新。更新。n nJDBCJDBC使得使得使得使得JavaJava不仅能够和远程数据通信,也能
11、够在各种不仅能够和远程数据通信,也能够在各种不仅能够和远程数据通信,也能够在各种不仅能够和远程数据通信,也能够在各种不同得数据源之间通信,从而扩大了不同得数据源之间通信,从而扩大了不同得数据源之间通信,从而扩大了不同得数据源之间通信,从而扩大了JavaJava这种跨平台编程这种跨平台编程这种跨平台编程这种跨平台编程语言的应用范围,提高了它的应用价值。语言的应用范围,提高了它的应用价值。语言的应用范围,提高了它的应用价值。语言的应用范围,提高了它的应用价值。n nJDBCJDBC是是是是JavaJava程序连接和存取数据库的应用程序接口程序连接和存取数据库的应用程序接口程序连接和存取数据库的应用
12、程序接口程序连接和存取数据库的应用程序接口(APIAPI),它是),它是),它是),它是JavaJava核心核心核心核心APIAPI的一部分。的一部分。的一部分。的一部分。13.1.1JDBC数据库应用模型数据库应用模型n nJDBCJDBC由两层组成,上面一层是由两层组成,上面一层是由两层组成,上面一层是由两层组成,上面一层是JDBCAPIJDBCAPI,下面,下面,下面,下面一层是一层是一层是一层是JDBCJDBC驱动程序驱动程序驱动程序驱动程序APIAPI。JDBC驱动程序驱动程序n nJDBCJDBC驱动程序按照连接方式的不同可以分为四种驱动程序按照连接方式的不同可以分为四种驱动程序按
13、照连接方式的不同可以分为四种驱动程序按照连接方式的不同可以分为四种类型:类型:类型:类型:n nType1Type1:JDBC-ODBCBridgeJDBC-ODBCBridgen nType2Type2:NativeAPIBridgeNativeAPIBridgen nType3Type3:JDBC-MiddlewareJDBC-Middlewaren nType4Type4:PureJDBCDriverPureJDBCDriverJDBCJDBC的用途是什么?的用途是什么?简单地说,简单地说,JDBCJDBC可做三件事:可做三件事:v与数据库建立连接与数据库建立连接;v发送发送SQLSQL
14、语句语句,v处理结果处理结果。JDBC API在java.sql包中定义,其中包括JDBC API用到的所有类、接口和方法利用利用JDBCJDBC开发数据库应用的一般步骤开发数据库应用的一般步骤(1 1)建立与数据库的连接建立与数据库的连接(2 2)执行执行SQLSQL语句语句(3 3)处理结果集处理结果集(4)关闭数据库的连接使用使用JDBC连接到数据库步骤连接到数据库步骤(1 1)建立与数据库的连接)建立与数据库的连接A A、加载、加载JDBCJDBC驱动程序驱动程序在使用在使用JDBCJDBC驱动程序之前,先加载并注册此驱动程序,若使驱动程序之前,先加载并注册此驱动程序,若使用用JDBC
15、-ODBCJDBC-ODBC桥,则为:桥,则为:Class.forName(Class.forName(“”););Class.forName(Class.forName(“”););(1 1)建立与数据库的连接)建立与数据库的连接B B、连接到数据库、连接到数据库使用使用DriverManagerDriverManager的的getConnection()getConnection()来连接到指定的数据库,来连接到指定的数据库,由于可能会同时使用不同的由于可能会同时使用不同的JDBCJDBC驱动程序,驱动程序,DriverManagerDriverManager会会从已注册的从已注册的JDB
16、CJDBC驱动程序中搜索合适的驱动程序并连接到数据驱动程序中搜索合适的驱动程序并连接到数据库,若是使用库,若是使用JDBC-ODBCJDBC-ODBC桥,则为:桥,则为:Stringurl=“jdbc:oracle:student”Connectioncon=DriverManager.getConnection(url,“”,“”)使用使用JDBC连接到数据库步骤连接到数据库步骤数据库数据库URLURL的格式为:的格式为:jdbc:jdbc:子协议子协议odbcodbc表示对表示对ODBCODBC数据源的访问,其格式为:数据源的访问,其格式为:jdbc:odbc:jdbc:odbc:例如:例
17、如:Stringurl=jdbc:odbc:people;使用使用JDBC连接到数据库步骤连接到数据库步骤DriverManager类的类的getConnection方法用于建立与某个数据方法用于建立与某个数据源的连接。若与由源的连接。若与由URL指定的数据源建立连接成功,则返回一指定的数据源建立连接成功,则返回一个个Connection类的对象。以后对于这个数据源的操作都是基于类的对象。以后对于这个数据源的操作都是基于这个对象。这个对象。getConnection方法是方法是DriverManager类中的静态类中的静态方法。方法。其中其中,getConnection()的第的第1个参数是数
18、据库个参数是数据库URL,第,第2个为个为用户名字,第用户名字,第3个为密码。个为密码。例如:例如:Connectioncon=DriverManager.getConnection(url,“sa”,“”)使用使用JDBC连接到数据库步骤连接到数据库步骤(2)将将SQL语句送至数据库,执行语句送至数据库,执行SQL语句语句A A、创建、创建StatementStatement对象对象 建立了到特定数据库的连接之后,就可用该连接发送建立了到特定数据库的连接之后,就可用该连接发送SQLSQL语句。语句。StatementStatement对象用对象用ConnectionConnection的方法
19、的方法createStatementcreateStatement创建,如下列代码段中所示创建,如下列代码段中所示:Connectioncon=DriverManager.getConnection(url,sunny,);Statementstmt=con.createStatement();使用JDBC连接到数据库步骤(2)将将SQL语句送至数据库,执行语句送至数据库,执行SQL语句语句B B、发送、发送StatementStatement对象对象SQLSQL语句语句 为了执行为了执行StatementStatement对象,被发送到数据库的对象,被发送到数据库的SQLSQL语句将被语句将
20、被作为参数提供给作为参数提供给StatementStatement的方法的方法:ResultSetrs=stmt.executeQuery(“SELECT姓名姓名,性别性别,年龄年龄FROMstudent);使用JDBC连接到数据库步骤(2)将将SQL语句送至数据库,执行语句送至数据库,执行SQL语句语句C、使用使用StatementStatement对象执行语句对象执行语句 StatementStatement接口提供了三种执行接口提供了三种执行SQLSQL语句的方法:语句的方法:executeQueryexecuteQuery、executeUpdateexecuteUpdate和和exe
21、cuteexecute。使用哪一个方法由使用哪一个方法由SQLSQL语句所产生的内容决定。语句所产生的内容决定。u方法方法executeQueryexecuteQuery用于产生单个结果集的语句,用于产生单个结果集的语句,例如例如SELECTSELECT语句。语句。使用JDBC连接到数据库步骤(2)将将SQL语句送至数据库,执行语句送至数据库,执行SQL语句语句C、使用、使用Statement对象执行语句对象执行语句u方法方法executeUpdateexecuteUpdate用于执行用于执行INSERTINSERT、UPDATEUPDATE或或DELETEDELETE语句以及语句以及SQLS
22、QLDDLDDL(数据定义语言)语句(数据定义语言)语句u方法方法executeexecute用于执行返回多个结果集、多个更新计数或二用于执行返回多个结果集、多个更新计数或二者组合的语句。者组合的语句。JDBC应用(2)将将SQL语句送至数据库,执行语句送至数据库,执行SQL语句语句C、使用、使用Statement对象执行语句对象执行语句执行语句的所有方法都将执行语句的所有方法都将关闭关闭所调用的所调用的StatementStatement对象的对象的当前打开结果集当前打开结果集(如果存在)。(如果存在)。这意味着在重新执行这意味着在重新执行StatementStatement对象之前,需要完
23、对象之前,需要完成对当前成对当前ResultSetResultSet对象的处理。对象的处理。使用JDBC连接到数据库步骤(2)将将SQL语句送至数据库,执行语句送至数据库,执行SQL语句语句D、使用、使用Statement对象执行语句对象执行语句语句完成语句完成对于返回一个结果集的对于返回一个结果集的executeQueryexecuteQuery方法,在检方法,在检索完索完ResultSetResultSet对象的所有行时该语句完成。对象的所有行时该语句完成。对于方法对于方法executeUpdateexecuteUpdate,当它执行时语句即完成。,当它执行时语句即完成。但在少数调用方法但
24、在少数调用方法executeexecute的情况中,在检索所有的情况中,在检索所有结果集或它生成的更新计数之后语句才完成。结果集或它生成的更新计数之后语句才完成。使用JDBC连接到数据库步骤(3)处理结果集)处理结果集读入数据库返回的结果读入数据库返回的结果结果集一般是一个表,其中有查询所返回的列标题及相应的结果集一般是一个表,其中有查询所返回的列标题及相应的值。值。例如,如果查询为例如,如果查询为SELECTSELECT姓名姓名,性别性别,年龄年龄FROMFROMstudentstudent,则结果,则结果集将具有如下形式:集将具有如下形式:使用JDBC连接到数据库步骤姓名姓名性别性别年龄年
25、龄贾宝玉贾宝玉男男21林黛玉林黛玉女女19猪八戒猪八戒男男22白骨精白骨精女女20(3)处理结果集)处理结果集读入数据库返回的结果读入数据库返回的结果ResultSet:ResultSet包含符合包含符合SQLSQL语句中条件的所有行,并且语句中条件的所有行,并且它通过一套它通过一套getget方法(这些方法(这些getget方法可以访问当前行中的方法可以访问当前行中的不同列)提供了对这些行中数据的访问。不同列)提供了对这些行中数据的访问。ResultSet.next方法用于移动到方法用于移动到ResultSet中的下一行,中的下一行,使下一行成为当前行。使下一行成为当前行。使用JDBC连接到
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 数据库 JDBC
限制150内