版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第十三章JDBC 基础知识 回顾JTable的的用途如何使用用JTableJTree的的用途如何使用用JTree2本章目标标了解JDBC的的概念及及必要性性了解JDBC驱驱动程序序类型理解JDBC程程序的的结构运用JDBC进进行数据据库编程程3数据库访访问技术术简介客户机/服务器应用程序序数据库编编程ODBCJDBC两个常用用的API数据库执行SQL语句检索查询询结果4数据库ODBC客户机/服务器GUI应用程序序ODBC(开放式式数据库库连接)(Microsoft提供)插 入删 除修 改应用程序序编程接接口查询 5JDBCJDBC(Java数据库连连接)(sun公司提供供)Java应用程序序编
2、程接接口Java应用程序序数据库插 入修 改删 除查询 6JDBC 驱动动程序的的类型JDBC驱动程序序的类型JDBC-ODBC桥桥驱动程程序及ODBC驱动程程序本地API部分分Java驱动动程序JDBC-Net纯Java驱动动程序本地协议议纯Java驱驱动程序序7JDBC 体系系结构2-1Java程序JDBC驱动程序序数据库SQL命令结果8JDBC 体系系结构2-2应用层DriverStatementResultSetConnection各接口驱动层9java.sql包包 3-1接口名 说明 Connection此接口表示与数据的连接PreparedStatement此接口用于执行预编译的
3、SQL 语句 ResultSet此接口表示了查询出来的数据库数据结果集Statement此接口用于执行 SQL 语句并将数据检索到 ResultSet 中 10java.sql包包 3-2类名 说明 DriverManager此类用于加载和卸载各种驱动程序并建立与数据库的连接Date此类包含将 SQL 日期格式转换成 Java 日期格式的各种方法Time此类用于表示时间TimeStamp此类通过添加纳秒字段为时间提供更高的精确度 11java.sql包包 3-3SQLException/*fooBar */publicvoidfoobar()throws SQLExceptionthrowne
4、wSQLException(“刚引发了了一个SQLException”);tryfooBar();catch(SQLExceptionex)System.out.println(“已捕获一一个SQLException异常!”);System.out.println(“消息: “+ex.getMessage();System.out.println(“错误代码码: “+ex.getErrorCode();调用fooBar12JDBC 程序序访问数据据库的步步骤2-1开 始导入java.sql包加载并注注册驱动动程序创建一个个Connection对象创建一个个Statement对象执行语句句关闭R
5、esultSet对象关闭Statement对象关闭连接接结 束使用ResultSet对象13Friends表的结构构JDBC 程序序访问数据据库的步步骤2-2它演示访访问数据据库的各各个步骤骤在执行示示例1 中的的程序之之前,SQLServer 中应应该存在在一个名为friends 的表表演示:示示例1列名称数据类型名称 Varchar(50)地址Varchar(50)电话Numeric入职日期Datetime工资Numeric/*2005 AptechLimited*版权所有有*/importjava.sql.SQLException;importjava.sql.Connection;im
6、portjava.sql.DriverManager;importjava.sql.Statement;importjava.sql.ResultSet;/*这个类演演示访问问数据库库需遵循循的各个个步骤.* version 1.0,2005年8月26日*author Ben*/classJdbctest/*构造方法法 */protectedJdbctest()/*这是main方法.*/publicstatic voidmain(Stringargs) tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundExc
7、eptionce)System.out.println(ce);tryStringurl= jdbc:odbc:test;Connection con=DriverManager.getConnection(url);Statements=con.createStatement();ResultSetrs=s.executeQuery(select* fromfriends);while(rs.next()System.out.print(rs.getString(1)+ t);System.out.print(rs.getString(2)+ t);System.out.print(rs.g
8、etInt(3)+t);System.out.print(rs.getDate(4)+t);System.out.println();rs.close();s.close();con.close(); catch (SQLExceptionce)System.out.println(ce);14JDBC 查询询2-1SQL查询字符符串executeQuery()方法作为参数数传递ResultSet返回查询询数据SELECTname,email, phone FROMcolleagues;使用SQL语句,查查询可编编写为:Stringstr= SELECTemp_id,lname,fnameFR
9、OM colleagues;Statementstmt=con.createStatement();ResultSetrset=stmt.executeQuery(str);使用JDBC编写此查查询,则则代码为为:Statement接口15JDBC 查询询2-2它演示SQL 中sum() 方法法的用法法演示:示例2/* Jdbctest2*/importjava.sql.SQLException;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.Statement;importjava.sql.Resul
10、tSet;/*这个类演演示SQL中sum()方法的用用法*version1.0, 2005年8月26日*author Ben*/classJdbctest2/*构造方法法*/protectedJdbctest2()/*这是main方法*/publicstatic voidmain(Stringargs) tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundExceptionce) System.out.println(ce); tryStringurl= jdbc:odbc:test;Connection co
11、n=DriverManager.getConnection(url);Statements=con.createStatement();ResultSetrs=s.executeQuery(selecthiredate, sum(salary) fromfriendsgroupbyhiredate);while(rs.next()System.out.print(rs.getDate(1)+t);System.out.print(rs.getInt(2)+ t);System.out.println();rs.close;s.close();con.close(); catch (SQLExc
12、eptionce) System.out.println(ce);16演示:示示例3它演示SQL 中INSERT 语句句的用法法/* Jdbctest3*/importjava.sql.SQLException;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.Statement;importjava.sql.ResultSet;/*这个类演演示INSERT语句的用用法.* version 1.0,2005年8月26日*author Ben*/classJdbctest3/*构造方法法 */protect
13、edJdbctest3()JDBC 插入入数据实实现/*这是main方法*/publicstatic voidmain(Stringargs) tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundExceptionce) System.out.println(ce);tryStringurl= jdbc:odbc:test;Stringstr= INSERTINTO“+friends(name,address,salary)“+ VALUES(朱八,深圳,25690);Connection con=Driver
14、Manager.getConnection(url);Statements=con.createStatement();introwcount=s.executeUpdate(str);Stringstr1= selectname,sum(salary) “+fromfriends+ groupbyname;ResultSetrs= s.executeQuery(str1);while(rs.next()System.out.print(rs.getString(1)+ t);System.out.print(rs.getInt(2)+ t);System.out.println();rs.c
15、lose();s.close();con.close(); catch (SQLExceptionce) System.out.println(ce); 17JDBC 删除除和修改改实现它演示SQL 中各各种命令令的用法法演示:示示例4/* Jdbc2*/importjava.sql.SQLException;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.Statement;/*这这个类类演示SQL中命令的的用法.* version 1.0,2005年 8月月26日日*author Ben*/clas
16、sJdbc2/*构造方法法.*/protectedJdbc2()publicstatic voidmain(Stringargs) Connection con;Statementstmt;Stringurl;Stringsql;tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundExceptionce) System.out.println(ce);tryurl= jdbc:odbc:test;con=DriverManager.getConnection(url);sql= Deletefromfriend
17、s wherertrim(name)like张三;System.out.println();stmt =con.createStatement();stmt.executeUpdate(sql);System.out.println(张三的记录已已删除“);stmt.close();con.close();con=DriverManager.getConnection(url);sql= Updatefriendssetaddress=青岛where“+ rtrim(name) like李四;System.out.println();stmt =con.createStatement();st
18、mt.executeUpdate(sql);stmt.close();con.close();System.out.println(李四的记记录已更更新); catch (SQLExceptionce) System.out.println(ce);18PreparedStatement接口口 3-1PreparedStatement接口(预编译的的SQL语句)PreparedStatement用于提高高运行时时效率执行PreparedStatement对象比执执行Statement对象快Statement接口19PreparedStatement接口口 3-2它演示了了PreparedSta
19、tement的的用法法演示:示示例5/*CourseAppl*/importjava.sql.SQLException;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.Statement;importjava.sql.ResultSet;importjava.sql.PreparedStatement;/*这个类演演示SQL中PreparedStatement的用法*/classCourseApplprivate Connectioncon;private Stringurl;private Strin
20、gserverName;private StringportNumber;private StringdatabaseName;private StringuserName;private Stringpassword;private Stringsql;CourseAppl()url= jdbc:microsoft:sqlserver:/;serverName= “localhost;portNumber= 1433;databaseName= “test;userName= “sa;password= “sa;private StringgetConnectionUrl()returnur
21、l+serverName+ :+portNumber+ ;databaseName=+databaseName+ ;privatejava.sql.ConnectiongetConnection()tryClass.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);con=DriverManager.getConnection(getConnectionUrl(),userName, password);if(con != null) System.out.println(连接成功功!); catch (Exceptione)e.pri
22、ntStackTrace();System.out.println(getConnection()内的错误误跟踪:+e.getMessage();returncon;publicvoiddisplay()trycon=getConnection();PreparedStatementpstmt=con.prepareStatement(UPDATEfriendsSETsalary= ?WHEREnamelike ?);pstmt.setInt(1,10000);pstmt.setString(2,李四);pstmt.executeUpdate();System.out.println(“记录已
23、更更新!);Statements=con.createStatement();Stringsql= SELECT*FROMfriends;ResultSetrs=s.executeQuery(sql);while(rs.next()System.out.println();System.out.print(rs.getInt(1)+ );System.out.println(rs.getInt(5); catch (SQLExceptionce) System.out.println(ce); publicstatic voidmain(Stringargs) CourseApplretObj
24、= newCourseAppl();retObj.display();20PreparedStatement接接口3-3它演示在在基于条条件的SQL 查询询中如何何使用PreparedStatement,其中条条件在IN参参数中中给出演示:示示例6importjava.sql.SQLException;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.PreparedStatement;/*这个类演演示在基基于条件件的SQL查询中使使用PreparedSt
25、atement*/classRetrieveRecordsprivate Connectioncon;private Stringurl;private StringserverName,portNumber,databaseName,userName;private Stringsql;RetrieveRecords()url= jdbc:microsoft:sqlserver:/;serverName= “localhost;portNumber= 1433;databaseName= “test;userName= “sa;password= “sa;private StringgetC
26、onnectionUrl()returnurl+serverName+ :+portNumber+ ;databaseName=+databaseName+ ; privatejava.sql.ConnectiongetConnection()tryClass.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);con=DriverManager.getConnection(getConnectionUrl(),userName, password);if(con != null) System.out.println(连接成功功!);
27、catch (Exceptione)e.printStackTrace();System.out.println(“getConnection()内的错误误跟踪:+e.getMessage();returncon;publicvoiddisplay()trycon=getConnection();sql= select*from FriendswhereSalary ?;PreparedStatementpstmt=con.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);pstmt
28、.setInt(1,5000);ResultSetrs=pstmt.executeQuery();while(rs.next()System.out.print(rs.getString(1)+ t);System.out.print(rs.getString(2)+ t);System.out.print(rs.getInt(3)+ t);System.out.print(rs.getDate(4)+t);System.out.print(rs.getInt(5)+ t);System.out.println();rs.close();pstmt.close();con.close(); c
29、atch (SQLExceptionce) System.out.println(ce); /*这是main方法*/publicstatic voidmain(Stringargs) RetrieveRecordsretRec= newRetrieveRecords();retRec.display();21使用结果果集3-1ResultSet对对象完完全依赖赖于Statement对对象和和 Connection对象每次执行行 SQL语语句时,都会用用新的结结果重写写结果集集当相关的的 Statement关关闭时,ResultSet 对象象会自动动关闭Next()get()此方法将将光标从从当前位置置下移一一行从ResultSet对象返回回数据22使用结果果集3-2它演示对对当前行行的处理理使用next()方方法时时,记录录是按顺顺序处理理的必须按照照数据返返回的顺顺序处理理每行中中的数据据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨学科知识素材在初中政治复习中的应用
- 湖中大经络腧穴学教案7-足太阴经络与腧穴
- 装修墙体施工规范与标准方案
- 污水管道智能监控平台方案
- 煤矿洗煤厂信息化管理系统方案
- 制造业工艺流程与设备操作指南
- 经营合作责任保证函(6篇)
- 新能源汽车充电桩建设项目可行性研究报告
- 汽车轴承生产线项目可行性研究报告
- 预制构件结构设计优化方案
- 2026广西华盛集团有限责任公司招聘7人农业考试备考试题及答案解析
- 概率与数列递推30题(马尔科夫链)
- A4版9年级语文答题卡(8位涂号+条形码)word版
- 煤矿供电及供电安课件
- 年产10000吨燃料乙醇工厂设计
- 结直肠与肛管疾病
- 弘扬中华民族精神主题班会
- 道路运输企业安全生产管理制度文本
- 河北热电厂建筑装饰装修工程监理细则
- GIS地理信息系统-GIS-地理信息系统-课件
- 警犬行为理论考试题库(含答案)
评论
0/150
提交评论