欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    JavaSE18_JDBC编程.pdf

    • 资源ID:70323097       资源大小:473.12KB        全文页数:28页
    • 资源格式: PDF        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    JavaSE18_JDBC编程.pdf

    Java SE应用程序设计应用程序设计第十八章JDBC编程张张 利利 国国中科院新科海学校中科院新科海学校 v512v512工作室工作室2Java SEJava SE应用程序设计应用程序设计新科海学校新科海学校http:/本章学习目标3JDBC编程编程1数据库相关基础数据库相关基础2JDBC基本概念基本概念5.1使用属性文件配置环境使用属性文件配置环境5.2OCI方式访问方式访问Oracle数据库数据库5.3可滚动和可更新结果集可滚动和可更新结果集4JDBC-ODBC编程编程5JDBC编程进阶编程进阶5.4预处理语句预处理语句5.5调用存储过程调用存储过程5.7批处理批处理5.8高级高级SQL类型类型BLOB/CLOB5.6事务处理事务处理3.1JDBC编程基本步骤编程基本步骤3.2执行执行SQL语句语句3.3获取数据库元数据获取数据库元数据3.4访问访问SQL Server数据库数据库3Java SEJava SE应用程序设计应用程序设计新科海学校新科海学校http:/数据库简介(1)?数据库(DB,Data Base)?数据库管理系统(DBMS,Data Base Management System)应用程序数据库管理系统数据库数据库系统应用程序Oracle、DB2 SQL Server等数据4Java SEJava SE应用程序设计应用程序设计新科海学校新科海学校http:/数据库简介(2)?关系型数据库(RDB)?关系型数据库管理系统(RDBMS)?SQL语言(Structured Query Language)?使用关系模型的数据库语言,用于和各类数据库的交互,提供通用的数据管理和查询功能。?常用SQL指令:SELECT、INSERT、DELETE、UPDATE、CREATE、DROP5Java SEJava SE应用程序设计应用程序设计新科海学校新科海学校http:/数据库简介(3)?ODBC(Open DataBase Connectivity,开放式数据库互连)?数据库系统应用程序接口规范。?支持应用程序以标准的ODBC函数和SQL语句操作各种不同类型的数据库。Oracle数据库1SQLServer数据库2Access数据库3其它数据库Oracle驱动程序SQL Server驱动程序Access驱动程序其他数据库驱动ODBC驱动程序应用程序图18-1 JDBC工作原理6Java SEJava SE应用程序设计应用程序设计新科海学校新科海学校http:/JDBC?JDBC(Java DataBase Connectivity)?JDBC功能:?支持基本SQL语句,在Java程序中实现数据库操作功能并简化操作过程?提供多样化的数据库连接方法?为各种不同的数据库提供统一的操作界面?JDBC API?java.sql.DriverManager类?java.sql.Driver接口?java.sql.Connection接口?java.sql.Statement接口?java.sql.ResultSet接口7Java SEJava SE应用程序设计应用程序设计新科海学校新科海学校http:/JDBC工作原理Oracle数据库1DB2ODBC方式连接数据库同图18-1虚线部分数据库2其它数据库JDBC驱动程序 for OracleJDBC驱动程序 for DB2JDBC-ODBC桥驱动程序JDBC-网络驱动程序JDBC驱动程序管理器Java应用程序图18-2 JDBC工作原理JDBC API8Java SEJava SE应用程序设计应用程序设计新科海学校新科海学校http:/JDBC驱动程序?什么是驱动程序??数据库驱动程序(DataBase Driver)?JDBC驱动程序分类:第一类:JDBC-OCBC桥第二类:Java到本地API第三类:Java到网络协议第四类:Java到数据库协议9Java SEJava SE应用程序设计应用程序设计新科海学校新科海学校http:/数据库URL?JDBC技术中使用数据库URL来标识目标数据库?数据库URL格式:?jdbc为协议名,确定不变;?指定目标数据库的种类和具体连接方式;?指定具体的数据库/数据源连接信息(如数据库服务器的IP地址/通信端口号、ODBC数据源名称、连接用户名/密码等)。?子名称的格式和内容随子协议的不同而改变。?举例:jdbc:jdbc:oracle:thin:166.111.78.98:1521:ora9jdbc:microsoft:sqlserver:/127.0.0.1:1433jdbc:microsoft:sqlserver:/127.0.0.1:1433;databasename=pubs10Java SEJava SE应用程序设计应用程序设计新科海学校新科海学校http:/JDBC编程?JDBC编程基本步骤1.加载驱动程序(向系统注册所需的JDBC驱动程序);2.建立到指定数据库的连接;3.提交数据库查询;4.取得查询结果?举例:?例18-1 JDBCExample.java11Java SEJava SE应用程序设计应用程序设计新科海学校新科海学校http:/ResultSet常用getXXX()方法方法名称返回值类型getBoolean()booleanbytegetBytes()bytegetDate()java.sql.DategetDouble()doublegetFloat()floatgetInt()intgetLong()longgetObject()ObjectgetShort()shortgetString()java.lang.StringgetTime()java.sql.TimegetByte()12Java SEJava SE应用程序设计应用程序设计新科海学校新科海学校http:/SQL-Java类型对应关系SQL类型Java 类型BITbooleanbyteBINARYbyteVARBINARYbyteLONGVARBINARYbyteDatejava.sql.DateFLOATdoubleDOUBLEdoubleREALfloatINTEGERintBIGINTlongSMALLINTshortCHARjava.lang.StringVARCHARjava.lang.StringLONGVARCHARjava.lang.StringTINYINT13Java SEJava SE应用程序设计应用程序设计新科海学校新科海学校http:/JDBC编程(续)?执行DML语句?例18-2 demo.sql、TestDML.java?执行DDL语句?例18-3 TestDDL.java?获取数据库元数据?例18-4 TestMetaData.java?访问SQL Server数据库?准备SQL Server数据库JDBC驱动程序1.从微软网站下载JDBC驱动程序安装文件2.本地安装该驱动程序包3.重新设置CLASSPATH环境变量?例18-5 demo.sql、TestSQLServer.java14Java SEJava SE应用程序设计应用程序设计新科海学校新科海学校http:/JDBC-ODBC编程?工作原理:JDBC驱动程序管理器并不直接操纵数据库驱动程序,而是调用JDBC-ODBC桥驱动程序操纵ODBC驱动程序,进而连接各种类型的数据库。?编程步骤:?创建ODBC数据源?在程序中连接并操作ODBC数据源?访问Excel文件?例18-6 test.xls、JDBC_ODBC.java?访问Access数据库?例18-7 db1.mdb、TestAccess.java?访问SQL Server数据库?例18-8 TestSQLServer.java15Java SEJava SE应用程序设计应用程序设计新科海学校新科海学校http:/JDBC编程进阶5.1使用属性文件配置环境使用属性文件配置环境5.2OCI方式访问方式访问Oracle数据库数据库5.3可滚动和可更新结果集可滚动和可更新结果集5JDBC编程进阶编程进阶5.4预处理语句预处理语句5.5调用存储过程调用存储过程5.7批处理批处理5.8高级高级SQL类型类型BLOB/CLOB5.6事务处理事务处理16Java SEJava SE应用程序设计应用程序设计新科海学校新科海学校http:/使用属性文件配置环境使用属性文件配置环境?将数据库连接信息(URL、用户名/密码等)保存到专门的属性文件中,而不在程序中直接给出?用法举例?例18-9 mydb.propertiesJDBCExample.java17Java SEJava SE应用程序设计应用程序设计新科海学校新科海学校http:/OCI方式访问Oracle数据库?什么是OCI(Oracle Call Interface)方式??OCI方式连接时Oracle客户端配置?使用Net Configuration Assistant?使用Net Manager图形化工具?直接修改数据库配置文件tnsnames.ora?用法举例?例18-10 TestOCI.java18Java SEJava SE应用程序设计应用程序设计新科海学校新科海学校http:/可滚动/可更新结果集?结果集类型?不可滚动(FORWARD_ONLY)?滚动不敏感(SCROLL_INSENSITIVE)?滚动敏感(SCROLL_SENSITIVE)?结果集的并发模式?只读的(READ_ONLY)?可更新的(UPDATABLE)?Connection接口中提供的重载方法createStatement()用于获取可滚动/可更新结果集。?方法格式:Statement createStatement(int type,int concurrency)19Java SEJava SE应用程序设计应用程序设计新科海学校新科海学校http:/检测结果集类型?结果集类型与并发模式常量?使用JDBC元数据API进行检测?例18-11TestMetaData.java 常量含义ResultSet.TYPE_FORWARD_ONLY不可滚动结果集ResultSet.CONCUR_UPDATABLE可更新结果集ResultSet.TYPE_SCROLL_INSENSITIVE滚动不敏感结果集ResultSet.TYPE_SCROLL_SENSITIVE滚动敏感结果集ResultSet.CONCUR_READ_ONLY只读结果集20Java SEJava SE应用程序设计应用程序设计新科海学校新科海学校http:/使用可滚动结果集?对于可滚动结果集,可以使用ResultSet接口中定义的下述方法进行遍历:?boolean next()?boolean previous()?boolean first()?boolean last()?void beforeFirst()?void afterLast()?boolean relative(int rows)?boolean absolute(int row)?int getRow()?用法举例?例18-12 demo.sql、TestScrollResultSet.java21Java SEJava SE应用程序设计应用程序设计新科海学校新科海学校http:/使用可更新结果集?对于可更新结果集,可以使用ResultSet接口中定义的下述方法进行更新操作:?void updateXXX(String columnName,XXX x)?void updateXXX(int columnIndex,XXX x)?void updateRow()?void moveToInsertRow()?void insertRow()?void moveToCurrentRow()?void deleteRow()?void cancelRowUpdates()?用法举例?例18-13 teacher.sql、TestUpdatableResultSet.java22Java SEJava SE应用程序设计应用程序设计新科海学校新科海学校http:/预处理语句?java.sql.PreparedStatement接口提供了执行预编译SQL语句的功能,它继承了java.sql.Statement接口。?Connection对象的prepareStatement(String sql)方法可创建并返回PreparedStatement对象。?PreparedStatement接口主要方法:?void setXXX(int parameterIndex,XXX x)?ResultSet executeQuery()?int executeUpdate()?用法举例?例18-14 demo.sql、PrepStmt.java23Java SEJava SE应用程序设计应用程序设计新科海学校新科海学校http:/调用存储过程?java.sql.CallableStatement接口提供了调用数据库服务器端存储过程(Procedure)的功能,它继承了java.sql.PreparedStatement接口。?Connection对象的prepareCall(String sql)方法可创建并返回CallableStatement对象。?CallableStatement接口主要方法:?void setXXX(int parameterIndex,XXX x)?boolean execute()?用法举例?例18-15 demo.sql、CallStmt.java24Java SEJava SE应用程序设计应用程序设计新科海学校新科海学校http:/事务处理?和数据库中的事务管理模式相对应,JDBC中的Connection对象也可分为自动提交和非自动提交两种模式。?JDBC驱动程序的默认事务管理模式为自动提交。?Connection接口提供的事务处理相关方法:?void setAutoCommit(boolean autoCommit)?boolean getAutoCommit()?void commit()?void rollback()?用法举例?例18-16 TestCommit25Java SEJava SE应用程序设计应用程序设计新科海学校新科海学校http:/事务处理之部分回滚?JDBC3.0 开 始 支 持 在 事 务 中 使 用 保 存 点(Savepoint),以实现对数据库事务的进一步控制、即支持部分回滚功能。?java.sql.Savepoint接口表示数据库事务中的保存点。?在Connection对象的rollback()方法中可以对当前事务中的保存点进行引用,从而将事务回滚到该保存点。?用法举例?例18-17demo.sql、TestSavepoint.java26Java SEJava SE应用程序设计应用程序设计新科海学校新科海学校http:/批处理?JDBC2.0 开始提供了对数据库操作的批处理(Batch Processing)功能,使用批处理功能避免了向数据库进行一连串的调用,从而可以显著提高程序的运行效率。?Statement接口提供的批处理相关方法:?void addBatch(String sql)?int executeBatch()?void clearBatch()?用法举例?例18-18 demo.sql、TestBatch.java27Java SEJava SE应用程序设计应用程序设计新科海学校新科海学校http:/高级SQL类型BLOB/CLOB?高级SQL类型BLOB/CLOB?BLOB(Binary Large OBject,二进制大对象)类型用于保存大规模的二进制数据?CLOB(Character Large OBject,文本大对象)类型则用于保存大规模的文本数据?JDBC2.0开始引入了对应于SQL99标准的多种高级数据类型,其中最重要的是两种大对象类型BLOB和CLOB。?用法举例?例18-19 使用BLOB类型?例18-20 使用CLOB类型

    注意事项

    本文(JavaSE18_JDBC编程.pdf)为本站会员(asd****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开