jdbc基本原理

上传人:优*** 文档编号:240446742 上传时间:2024-04-11 格式:PPT 页数:28 大小:162KB
返回 下载 相关 举报
jdbc基本原理_第1页
第1页 / 共28页
jdbc基本原理_第2页
第2页 / 共28页
jdbc基本原理_第3页
第3页 / 共28页
点击查看更多>>
资源描述
数据库应用模型数据库应用模型(两层结构两层结构)ClientDBServerODBC/JDBC数据库专用协议数据库专用协议2021/7/11JDBC基本原理nJDBC驱动程序nJDBC编程接口n批处理n可滚动的、可更新的结果集2021/7/12数据库应用模型数据库应用模型(三层结构三层结构)Client/BrowserWeb Application Serverhttp/RMIJDBCJDBCDB Server1JDBCDB Server2DB Server32021/7/13JDBC()JDBC-JavaDataBaseConnectivityJDBC功能:n支持基本SQL语句,在Java程序中实现数据库操作功能并简化操作过程;n提供多样化的数据库连接方式;n为各种不同的数据库提供统一的操作界面。2021/7/142021/7/15JDBC编程步骤编程步骤1.生成JDBC驱动的实例或是通过jdbc.drivers系统属性加载-向系统注册一个驱动程序。2.指定数据库3.打开数据库连接4.提交数据库查询5.取得查询结果2021/7/162021/7/17加载驱动程序n通过调用方法Class.forName。这将显式地加载驱动程序类。Class.forName(“oracle.jdbc.driver.OracleDriver”);2021/7/18指定数据库nJDBCURL的标准语法如下所示。它由三部分组成,各部分间用冒号分隔:jdbc:在JDBCURL中应将网络地址作为子名称的一部份包括进去,且必须遵循如下所示的标准URL命名约定:/主机名:端口/子协议jdbc:oracle:thin:localhost:1521:ora8jdbc:mysql:/localhost/myDB?useUnicode=true&characterEncoding=gb2312jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=mydbnODBC数据源的建立2021/7/19打开数据库连接nConnectioncon=DriverManager.getConnection(url,“user,“password);2021/7/110提交查询nStatementstmt=con.createStatement();nResultSetrs=stmt.executeQuery(SELECTa,b,cFROMTable1);2021/7/111取得查询结果n查询结果作为一个行的集合存在一个ResultSet对象中nResultSet对象初始化指向第一行n用next()方法到下一行n用get方法取得某一列的值2021/7/112get方法和返回类型getBooleanbooleangetBytebytegetBytesbytegetDatejava.sql.DategetDoubledoublegetFloatfloatgetIntintgetLonglonggetObjectObjectgetShortShortgetStringjava.lang.StringgetTimejava.sql.TimegetTimestampjava.sql.Timestamp2021/7/113JDBC-ODBC桥桥案例案例1-1、1-2:连接Access数据库n程序:TestJDBC.javan程序:InsertData.java案例案例1-3:连接文本文件n程序:TestTXT.java2021/7/114访问访问Oracle数据库数据库oracle.jdbc.driver.OracleDriver将classes12.zip加入到classpath案例1-5:JDBCExample.java2021/7/115自动提交功能nTransaction:n相关语句:nConnectionconn=nconn.setAutoCommit(true/false);n案例1-6:TestCommit.java2021/7/116PreparedStatementn用于执行带或不带输入参数的预编译SQL语句;n已预编译过,执行速度要快;n当需要多次调用同一条SQL语句时,可以使用PreparedStatement接口;nPreparedStatement从Statement继承而来;PreparedStatement接口常用方法nsetXXX()nexecuteQuery()nexecuteUpdate()案例1-7:PrepStmt.java2021/7/1174.CallableStatementn当不直接使用SQL语句,而是调用数据库中的StoreProcedure时,要用到CallableStatement;nCallableStatement从PreparedStatement接口继承而来。CallableStatementcstmt=con.prepareCall(callreviseTotal(?);cstmt.setByte(1,25);cstmt.registerOutParameter(1,java.sql.Types.TINYINT);cstmt.executeUpdate();bytex=cstmt.getByte(1);案例案例1-8:CallStmt.java2021/7/118小结n学习了JDBC编程步骤n学习了PreparedStatement语句n学习了CallableStatement语句2021/7/1192.元数据n元数据(metadata):描述数据库或数据库一部分的数据。n分为两种:n关于数据库的n关于结果集的2021/7/1202.1DatabaseMetaDatangetTables(Stringcatalog,StringschemaPattern,StringtableNamePattern,Stringtypes)ngetColumns(Stringcatalog,StringschemaPattern,StringtableNamePattern,StringcolumnNamePattern)ngetPrimaryKeys(Stringcatalog,Stringschema,Stringtable)案例2-1:DBMetaDataMethods.java2021/7/1212.2ResultSetMetaDatangetColumnCount()ngetColumnDisplaySize(intcolumn)ngetColumnLabel(intcolumn)ngetColumnName(intcolumn)案例2-2:RSMetaDataMethods.java2021/7/1223.批处理nsetAutoCommit(false)naddBatch(Stringcommand)nexecuteBatch()ncommit()n恢复原autoCommit设置案例3-1:TestBatch.java2021/7/1233.可滚动的结果集Statementst=con.createStatement(type,concurrency);type:ResultSet.TYPE_FORWARD_ONLYResultSet.TYPE_SCROLL_INSENSITIVEResultSet.TYPE_SCROLL_SENSITIVEConcurrency:ResultSet.CONCUR_READ_ONLYResultSet.CONCUR_UPDATABLE2021/7/124nabsolute(n)relative(n)nfirst()last()nbeforeFirst()afterLast()nisFirst()isLast()nisBeforeFirst()isAfterLast()nnext()previous()ngetRow()案例2-4:ScrollableResultSet.java2021/7/1254.可更新的结果集n用ResultSet类的getConcurrency()验证是否可更新nupdateXxx()只改变记录值,不能改变数据库中数据nupdateRow()把修改后的值存储到数据库;如果移动到另一行前没有调用updateRow()方法,则本行的所有更新将被撤消。n用cancelRowUpdates()撤消本行中的所有修改2021/7/126n插入行:nmoveToInsertRow()nupdateXxx()ninsertRow()nmoveToCurrentRow()注意:你无法控制新数据被添加到结果集或数据库的地方ndeleteRow()可以删除位于游标下面的一行案例4-1:InsertRows.java2021/7/127 结束语结束语若有不当之处,请指正,谢谢!若有不当之处,请指正,谢谢!
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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