jdbc基本原理.ppt

上传人:李医生 文档编号:9290595 上传时间:2021-02-15 格式:PPT 页数:27 大小:124.50KB
返回 下载 相关 举报
jdbc基本原理.ppt_第1页
第1页 / 共27页
jdbc基本原理.ppt_第2页
第2页 / 共27页
jdbc基本原理.ppt_第3页
第3页 / 共27页
jdbc基本原理.ppt_第4页
第4页 / 共27页
jdbc基本原理.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《jdbc基本原理.ppt》由会员分享,可在线阅读,更多相关《jdbc基本原理.ppt(27页珍藏版)》请在三一文库上搜索。

1、数据库应用模型(两层结构),Client,DB Server,ODBC/JDBC 数据库专用协议,JDBC 基本原理,JDBC驱动程序 JDBC编程接口 批处理 可滚动的、可更新的结果集,数据库应用模型(三层结构),Client/Browser,Web Application Server,http / RMI,JDBC,JDBC,DB Server1,JDBC,DB Server2,DB Server3,JDBC( ),JDBC- Java DataBase Connectivity JDBC功能: 支持基本SQL语句,在Java程序中实现数据库操作功能并简化操作过程; 提供多样化的数据库连

2、接方式; 为各种不同的数据库提供统一的操作界面。,JDBC编程步骤,生成JDBC驱动的实例或是通过jdbc.drivers系统属性加载-向系统注册一个驱动程序。 指定数据库 打开数据库连接 提交数据库查询 取得查询结果,加载驱动程序,通过调用方法Class.forName。这将显式地加载驱动程序类。 Class.forName(“oracle.jdbc.driver. OracleDriver”);,指定数据库,JDBCURL的标准语法如下所示。它由三部分组成,各部分间用冒号分隔: jdbc: 在JDBCURL中应将网络地址作为子名称的一部份包括进去,且必须遵循如下所示的标准URL命名约定:

3、/主机名:端口/子协议 jdbc:oracle:thin:localhost:1521:ora8 jdbc:mysql:/localhost/myDB?useUnicode=trueDatabaseName=mydb ODBC数据源的建立,打开数据库连接,Connectioncon=DriverManager. getConnection(url,“user,“password);,提交查询,Statementstmt=con.createStatement(); ResultSetrs=stmt.executeQuery( SELECTa,b,cFROMTable1);,取得查询结果,查询结

4、果作为一个行的集合存在一个ResultSet对象中 ResultSet对象初始化指向第一行 用next()方法到下一行 用get方法取得某一列的值,get方法和返回类型,getBoolean boolean getByte byte getBytes byte getDate java.sql.Date getDouble double getFloat float getInt int getLong long getObject Object getShort Short getString java.lang.String getTime java.sql.Time getTimesta

5、mp java.sql.Timestamp,JDBC-ODBC桥,案例1-1、1-2:连接Access数据库 程序:TestJDBC.java 程序:InsertData.java 案例1-3:连接文本文件 程序: TestTXT.java,访问Oracle数据库,oracle.jdbc.driver.OracleDriver 将classes12.zip加入到classpath 案例1-5: JDBCExample.java,自动提交功能,Transaction: 相关语句: Connection conn = conn.setAutoCommit (true / false); 案例1-6

6、:TestCommit.java,PreparedStatement,用于执行带或不带输入参数的预编译 SQL 语句; 已预编译过,执行速度要快; 当需要多次调用同一条SQL语句时,可以使用PreparedStatement接口; PreparedStatement从Statement继承而来; PreparedStatement接口常用方法 setXXX() executeQuery() executeUpdate() 案例1-7:PrepStmt.java,4. CallableStatement,当不直接使用SQL语句,而是调用数据库中的Store Procedure时,要用到Calla

7、ble Statement; CallableStatement从PreparedStatement接口继承而来。 CallableStatement cstmt = con.prepareCall( call reviseTotal(?); cstmt.setByte(1, 25); cstmt.registerOutParameter(1, java.sql.Types.TINYINT); cstmt.executeUpdate(); byte x = cstmt.getByte(1); 案例1-8: CallStmt.java,小结,学习了JDBC编程步骤 学习了PreparedStat

8、ement语句 学习了CallableStatement语句,2. 元数据,元数据(metadata):描述数据库或数据库一部分的数据。 分为两种: 关于数据库的 关于结果集的,2.1 DatabaseMetaData,getTables(String catalog, String schemaPattern, String tableNamePattern, String types) getColumns(Stringcatalog, String schemaPattern, String tableNamePattern, StringcolumnNamePattern) getPr

9、imaryKeys(Stringcatalog, Stringschema, Stringtable) 案例2-1:DBMetaDataMethods.java,2.2 ResultSetMetaData,getColumnCount() getColumnDisplaySize(int column) getColumnLabel(int column) getColumnName(int column) 案例2-2:RSMetaDataMethods.java,3. 批处理,setAutoCommit(false) addBatch(String command) executeBatch

10、() commit() 恢复原autoCommit设置 案例3-1:TestBatch.java,3. 可滚动的结果集,Statement st = con.createStatement( type, concurrency); type: ResultSet.TYPE_FORWARD_ONLY ResultSet.TYPE_SCROLL_INSENSITIVE ResultSet.TYPE_SCROLL_SENSITIVE Concurrency: ResultSet.CONCUR_READ_ONLY ResultSet.CONCUR_UPDATABLE,absolute(n) relat

11、ive(n) first() last() beforeFirst() afterLast() isFirst() isLast() isBeforeFirst() isAfterLast() next() previous() getRow() 案例2-4:ScrollableResultSet.java,4. 可更新的结果集,用ResultSet类的getConcurrency()验证是否可更新 updateXxx()只改变记录值,不能改变数据库中数据 updateRow()把修改后的值存储到数据库;如果移动到另一行前没有调用updateRow()方法,则本行的所有更新将被撤消。 用cancelRowUpdates()撤消本行中的所有修改,插入行: moveToInsertRow() updateXxx() insertRow() moveToCurrentRow() 注意:你无法控制新数据被添加到结果 集或数据库的地方 deleteRow()可以删除位于游标下面的一行 案例4-1:InsertRows.java,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1