c数据库连接实用.pptx

上传人:莉*** 文档编号:87179390 上传时间:2023-04-16 格式:PPTX 页数:29 大小:144.57KB
返回 下载 相关 举报
c数据库连接实用.pptx_第1页
第1页 / 共29页
c数据库连接实用.pptx_第2页
第2页 / 共29页
点击查看更多>>
资源描述

《c数据库连接实用.pptx》由会员分享,可在线阅读,更多相关《c数据库连接实用.pptx(29页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、目标JDBC的概念 JDBC的使用PreparedStatement 接口CallableStatement 接口第1页/共29页JDBC 概念 2-1JDBC是JDK核心的一部分由一组用 Java 编程语言编写的类和接口组成用于执行SQL语句使数据库开发人员能够用纯Java API 来编写数据库应用程序基本功能与数据库建立连接发送 SQL 语句到数据库处理返回结果第2页/共29页JDBC 概念 2-2特性易于理解和使用允许Java用一致的方法访问不同类型的数据库提供多种选择,适应不同需求屏蔽不同数据库数据类型定义的差异在类 Java.SQL.Types 中定义了一组通用 SQL 类型标识符提

2、供 DatabaseMetaData 接口,允许用户检索关于所使用的 DBMS 信息第3页/共29页JDBC 驱动程序JDBC的三个组件应用程序 驱动程序管理器(DriverManager)驱动程序(Driver)JDBC驱动程序的类型JDBC-ODBC 桥加 ODBC 驱动程序本地 API JDBC 网络纯 Java 驱动程序本地协议纯 Java 驱动程序 第4页/共29页第一种驱动程序JDBC-ODBC 桥优点JDK 的标准部分到处都有 ODBC 驱动程序缺点中间层次可能会导致性能降低客户端需要安装ODBC,不适合大型网络分布式应用第5页/共29页第二种驱动程序本地 API优点数据库客户端

3、好时,会获得高效率缺点客户端需要安装合适的数据库客户机库程序,不适合大型网络分布式应用第6页/共29页第三种驱动程序JDBC 网络纯 Java 驱动程序优点中间层次提供了灵活性:可以用相同的代码访问不同的数据库纯 Java 驱动程序,客户端安装容易,适合大型网络分布应用缺点额外的中间层次可能有损整体系统性能第7页/共29页第四种驱动程序本地协议纯 Java 驱动程序优点直接与数据库进行通讯,性能最佳纯 Java 驱动程序,客户端安装容易,适合大型网络分布应用缺点紧密耦合会影响灵活性,特别是如果您需要改变应用程序中的底层数据库时第8页/共29页四种驱动使用的差异不同点准备工作不同比如,JDBC-

4、ODBC 桥需要先建立数据源;本地协议纯 Java 驱动程序需要下载jar文件,设置classpath程序不同驱动程序名称字符串不同数据库URL标识字符串不同如果将驱动程序、数据库URL标识字符串通过配置文件实现,则程序可以完全相同除此之外没有区别第9页/共29页JDBC 使用步骤 7-1加载驱动程序Class.forName 通过名字className加载类className 因驱动不同而不同第一种:sun.jdbc.odbc.JdbcOdbcDriver第四种举例:oracle.jdbc.OracleDrivertryClass.forName(className);catch(Class

5、NotFoundException e)第10页/共29页JDBC 使用步骤 7-2建立数据库连接数据库 URL标识jdbc:第一种举例:jdbc:odbc:dsn_name第四种举例:jdbc:oracle:thin:zhuxg:1521:oracledbimport java.sql.*;/其他代码tryConnection con=DriverManager.getConnection(“URL”,“登录名”,“口令);catch(SQLException e)第11页/共29页JDBC 使用步骤 7-3创建Statement 对象Statement 对象负责将 SQL 语句发送到 DB

6、MSStatement sql=con.createStatement();第12页/共29页JDBC 使用步骤 7-4提交 SQL 语句Statement 对象的方法int rt=stmt.executeUpdate(sqlString);用于提交 DDL、insert、update和delete返回值为语句影响行数或0ResultSet rs=stmt.executeQuery(sqlString);用于提交 SELECT返回值为 ResultSet 对象,记录的集合boolean b=stmt.execute(sqlString);用于执行任何 SQL 语句,可能返回多个结果。结果可通过

7、 getResultSet(),getUpdateCount(),getMoreResults()获得返回 truetrue 表示第一个返回结果为 ResultSet 第13页/共29页JDBC 使用步骤 7-5处理返回结果 ResultSet使用 next()方法可以顺序查询结果集将游标最初定位在第一行的前面第一次调用next()方法使游标移动到第一行以后每次调用,下移一行next()方法返回一个boolean型数据,当游标移动到最后一行之后返回false使用 getXXX 方法检索数据getInt()用于检索整型值getString()用于检索字符串值getXXX 方法可按字段名和字段顺序

8、,按字段顺序时不可颠倒顺序,比如先 rs.getInt(5);再 rs.getString(3);第14页/共29页JDBC 使用步骤 7-6关闭 Statement 一个 Statement 对象同时只能打开一个 ResultSet执行完 SQL 语句可以关闭 Statement stmt.close();第15页/共29页JDBC 使用步骤 7-7断开数据库连接建立连接比较费时所有数据库操作完成,可以断开连接 Connectioncon.close();一个完整的例子 Ch4_1Employees.java第16页/共29页Statement 高级应用 4-1Statement sql=c

9、on.createStatement(type,concurrency);根据 type,concurrency 的取值,stmt返回相应类型的结果集type的取值ResultSet.TYPE_FORWARD_ONLYResultSet.TYPE_SCROLL_INSENSITIVE ResultSet.TYPE_SCROLL_SENSITIVEconcurrency的取值ResultSet.CONCUR_READ_ONLY ResultSet.CONCUR_UPDATABLE第17页/共29页Statement 高级应用 4-2ResultSet.TYPE_FORWARD_ONLY结果集只能

10、向前滚动默认方式ResultSet 有关方法next()ResultSet.TYPE_SCROLL_INSENSITIVE结果集可前后滚动数据库内容变化时 ResultSet 内容不变ResultSet.TYPE_SCROLL_SENSITIVE结果集可前后滚动数据库内容变化时 ResultSet 内容同步改变第18页/共29页Statement 高级应用 4-3前后滚动 ResultSet 有关方法previous();next();beforeFirst();afterLast();first();last();isAfterLast();isBeforeFirst();isFirst()

11、;islast();getRow();absolute(int row);注意行号从1开始如果取负值,就是倒数的行数,absolute(-1);表示移到最后一行移到最后一行再用getRow()获取行号,就得到总的行数第19页/共29页Statement 高级应用 4-4ResultSet.CONCUR_READ_ONLYResultSet 只能读数据库ResultSet.CONCUR_UPDATABLEResultSet 能用于更新数据表ResultSet 的相关方法public void updateXXXupdateXXX(StringcolumnName,XXXx)throws SQLE

12、xceptionpublic void updateRowupdateRow()throws SQLException例程序 JdbcDemo.java第20页/共29页高级查询 使用过滤条件sql.executeQuery(Select*from Student where Id2);排序查询sql.executeQuery(Select*from Student Order By Id);模糊查询可以用SQL语句操作符LIKE进行模式匹配,使用“%”代替一个或多个字符,用一个下划线“_”代替一个字符。sql.executeQuery(“Select*from Student Where N

13、ame Like 王%);第21页/共29页更新添加删除记录添加新记录sql.executeUpdate(“INSERT INTO Student VALUES(33,LiuMing,xcn)”);删除记录sql.executeUpdate(“Delete From Student Where Id 2”);更新记录sql.executeUpdate(“Update Student Set Name=Wang Where Id=2”);第22页/共29页PreparedStatement接口 2-1要多次执行一个SQL语句,使用PreparedStatement SQL 语句在创建时提供参数在

14、执行 PreparedStatement 时,只传递参数值通过不同的参数值多次调用PreparedStatement pStmt=conn.preparedStatement(insert into emp(empno,ename)values(?,?);第23页/共29页PreparedStatement接口 2-2在创建 PreparedStatement 对象之后,必须为参数赋值使用setXXX方法用 executeUpdate()方法执行SQL语句例程序 Ch4_2EmployeesPrepStat.java第24页/共29页CallableStatement 接口CallableSt

15、atement 用于执行 SQL 存储过程CallableStatement cStmt=conn.prepareCall(call showEmployees(?,?);IN参数setXXX(index,value);OUT参数registerOutParameter(index,Type)getXXX(index);IN OUT参数设置输入和IN参数相同也需要象OUT参数一样注册和获取返回值例程序 JDBCPureJava.java第25页/共29页使用套接字客户端程序服务端程序 JDBC数据库(DBMS)Socket发送SQL语句,接收查询结果优点:客户端不需要任何驱动程序第26页/共29页总结JDBC的概念 JDBC的使用PreparedStatement 接口CallableStatement 接口第27页/共29页作业P329 习题2第28页/共29页感谢您的欣赏!第29页/共29页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com