JDBC-连接-Oracle-数据库课件_第1页
JDBC-连接-Oracle-数据库课件_第2页
JDBC-连接-Oracle-数据库课件_第3页
JDBC-连接-Oracle-数据库课件_第4页
JDBC-连接-Oracle-数据库课件_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JDBC连接Oracle数据库JDBC连接Oracle数据库Java程序和JDBC及数据库系统的关系Java应用程序数据库数据库JDBCAPIJDBC驱动程序管理器JDBC/ODBC桥ODBC驱动程序JDBC驱动程序Java程序和JDBC及数据库系统的关系Java应用程序数据传统C/S(客户/服务)器模式客户端JDBC数据库服务器数据库协议(数据库驱动程序)传统C/S(客户/服务)器模式客户端JDBC数据库数据库协议B/S(浏览器/服务器)应用程序客户端浏览器中间层(业务逻辑)JDBC数据库服务器HTTP协议数据库协议B/S(浏览器/服务器)应用程序客户端中间层JDBC数据库HJDBC开发过程裁入某种数据库的驱动程序与某一个数据库建立连接对数据库进行查询对数据库进行更新插入数据修改数据删除数据SELECTINSERTUPDATEDETELEJDBC开发过程裁入某种数据库的驱动程序与某一个数据库建立连JDBC中常用的类型DriverManagerConnectionStatement(PreparedStatement)ResultSetJDBC中常用的类型DriverManagerSQLJDBC工作流程驱动管理器连接语句结果集创建创建创建驱动程序数据库数据DriveMangerConnectionStatementPreparedStatementResultSetgetconnectioncreateStatmentexecuteQuerySQLJDBC工作流程驱动管理器连接语句结果集创建创建创建驱JDBC连接数据过程加载数据库驱动创建数据库连接创建语句对象通过语句对象向数据库发送并执行sql语句得到数据库的结果集(可选)JDBC连接数据过程加载数据库驱动数据库驱动ODBC驱动

sun.jdbc.odbc.JdbcOdbcDriverOracle驱动

oracle.jdbc.driver.OracleDriver数据库驱动ODBC驱动加载驱动加载驱动Class.forName("sun.jdbc.odbc.JdbcOdbcDriver“)Class.forName("oracle.jdbc.driver.OracleDriver“)注意加载驱动需要导入第三方驱动包加载驱动加载驱动创建数据库连接相关信息数据库URL数据库连接用户名数据库连接密码创建数据库连接相关信息数据库URLJDBC使用URL来标识驱动程序和数据源两者的位置,格式如下,jdbc:<subprotocol>:<datesourceidentifier>jdbc:<指定JDBC驱动程序>:<数据源标识>例子如下:

jdbc:odbc:TestDBjdbc:oracle:thin:@33:1521:ora数据库URLJDBC使用URL来标识驱动程序和数据源两者的创建数据库连接创建数据库连接Connectioncon=DriverManager.getConnection("jdbc:oracle:thin:@33:1521:ora","scott","tiger");创建数据库连接创建数据库连接创建语句对象(增删改)Stringsql="insertintoadminvalues(‘张三’,20)";Statementstmt=con.createStatement();introw=stmt.executeUpdate(sql);对于增删改的操作,主要的变化在于SQL语句。连接对象和语句对象使用完毕必须释放资源stmt.close();con.close();创建语句对象(增删改)Stringsql="inse查询操作Stringsql=“select*fromadmin";Statementstmt=con.createStatement();ResultSetrs=stmt.executeQuery(sql);查询操作Stringsql=“select*fr对于结果集的操作结果集游标con.createStatement()等价于con.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY)游标的移动类型、游标的操作类型对于结果集的操作结果集游标ResultSet其他常量游标指针移动类型TYPE_FORWARD_ONLY表示游标只能向前移动。TYPE_SCROLL_INSENSITIVE双向滚动,但不及时更新,就是如果数据库里的数据修改过,并不在ResultSet中反应出来。TYPE_SCROLL_SENSITIVE双向滚动,并及时跟踪数据库的更新,以便更改ResultSet中的数据。ResultSet其他常量游标指针移动类型ResultSet其他常量游标指针操作类型CONCUR_READ_ONLY结果集只读操作CONCUR_UPDATABLE结果集可更新操作

ResultSet其他常量游标指针操作类型ResultSet常用方法游标操作方法booleannext()booleanprevious()booleanabsolute(introw)booleanfirst()booleanlast()voidafterLast()voidbeforeFirst()booleanisAfterLast()booleanisBeforeFirst()booleanisFirst()booleanisLast()ResultSet常用方法游标操作方法ResultSet常用方法获得结果集指针对于的数据TypegetType(StringcolumnLabel)TypegetType(intcolumnIndex)关闭结果集voidclose();ResultSet常用方法获得结果集指针对于的数据通过结果集插入数据rs.moveToInsertRow();rs.updateString("name","cc");rs.updateInt("age",33);rs.insertRow();rs.moveToCurrentRow();通过结果集插入数据rs.moveToInsertRow();通过结果集删除数据rs.absolute(1);rs.deleteRow();通过结果集删除数据rs.absolute(1);通过结果集修改操作rs.absolute(1);rs.updateInt("age",100);rs.updateRow();通过结果集修改操作rs.absolute(1);PreparedStatement解决sql注入问题。能够动态赋值sql参数。Stringsql=“Updateadminsetname=?,age=?”PreparedStatementpstmt=con.prepareStatement(sql);PreparedStatement解决sql注入问题。使用PreparedStatement对象Stringsql=“Updateadminsetname=?,age=?”用set方法给主机变量赋值:

pstmt.setString(1,”张三”);pstmt.setString(2,20);执行SQL语句

pstmt.executeUpdate();关闭语句pstmt.close();使用PreparedStatement对象StringsqCallableStatementStringsql=“{?=callget_age(?)}”cstmt.registerOutParameter(1,java.sql.Types.INTEGER);cstmt.setString(2,"aa");cstmt.execute();intage=cstmt.getInt(1);CallableStatementStringsql=关于事务的实现事务:代表着一系列的操作语句。事务只有两个状态,要么成功,要么失败。成功时提交,失败时回滚。举例如下:

con.getAutoCommit(false);Statementstmt=con.createStatement()try{stmt.executeUpdate(command1);stmt.executeUpdate(command2);stmt.executeUpdate(command3);

……

……}catch(SQLExceptione){con.rollback();}mit();关于事务的实现事务:代表着一系列的操作语句。事务只有两个状态List有序可重复Set加有参和无参List有序可重复JDBC连接Oracle数据库JDBC连接Oracle数据库Java程序和JDBC及数据库系统的关系Java应用程序数据库数据库JDBCAPIJDBC驱动程序管理器JDBC/ODBC桥ODBC驱动程序JDBC驱动程序Java程序和JDBC及数据库系统的关系Java应用程序数据传统C/S(客户/服务)器模式客户端JDBC数据库服务器数据库协议(数据库驱动程序)传统C/S(客户/服务)器模式客户端JDBC数据库数据库协议B/S(浏览器/服务器)应用程序客户端浏览器中间层(业务逻辑)JDBC数据库服务器HTTP协议数据库协议B/S(浏览器/服务器)应用程序客户端中间层JDBC数据库HJDBC开发过程裁入某种数据库的驱动程序与某一个数据库建立连接对数据库进行查询对数据库进行更新插入数据修改数据删除数据SELECTINSERTUPDATEDETELEJDBC开发过程裁入某种数据库的驱动程序与某一个数据库建立连JDBC中常用的类型DriverManagerConnectionStatement(PreparedStatement)ResultSetJDBC中常用的类型DriverManagerSQLJDBC工作流程驱动管理器连接语句结果集创建创建创建驱动程序数据库数据DriveMangerConnectionStatementPreparedStatementResultSetgetconnectioncreateStatmentexecuteQuerySQLJDBC工作流程驱动管理器连接语句结果集创建创建创建驱JDBC连接数据过程加载数据库驱动创建数据库连接创建语句对象通过语句对象向数据库发送并执行sql语句得到数据库的结果集(可选)JDBC连接数据过程加载数据库驱动数据库驱动ODBC驱动

sun.jdbc.odbc.JdbcOdbcDriverOracle驱动

oracle.jdbc.driver.OracleDriver数据库驱动ODBC驱动加载驱动加载驱动Class.forName("sun.jdbc.odbc.JdbcOdbcDriver“)Class.forName("oracle.jdbc.driver.OracleDriver“)注意加载驱动需要导入第三方驱动包加载驱动加载驱动创建数据库连接相关信息数据库URL数据库连接用户名数据库连接密码创建数据库连接相关信息数据库URLJDBC使用URL来标识驱动程序和数据源两者的位置,格式如下,jdbc:<subprotocol>:<datesourceidentifier>jdbc:<指定JDBC驱动程序>:<数据源标识>例子如下:

jdbc:odbc:TestDBjdbc:oracle:thin:@33:1521:ora数据库URLJDBC使用URL来标识驱动程序和数据源两者的创建数据库连接创建数据库连接Connectioncon=DriverManager.getConnection("jdbc:oracle:thin:@33:1521:ora","scott","tiger");创建数据库连接创建数据库连接创建语句对象(增删改)Stringsql="insertintoadminvalues(‘张三’,20)";Statementstmt=con.createStatement();introw=stmt.executeUpdate(sql);对于增删改的操作,主要的变化在于SQL语句。连接对象和语句对象使用完毕必须释放资源stmt.close();con.close();创建语句对象(增删改)Stringsql="inse查询操作Stringsql=“select*fromadmin";Statementstmt=con.createStatement();ResultSetrs=stmt.executeQuery(sql);查询操作Stringsql=“select*fr对于结果集的操作结果集游标con.createStatement()等价于con.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY)游标的移动类型、游标的操作类型对于结果集的操作结果集游标ResultSet其他常量游标指针移动类型TYPE_FORWARD_ONLY表示游标只能向前移动。TYPE_SCROLL_INSENSITIVE双向滚动,但不及时更新,就是如果数据库里的数据修改过,并不在ResultSet中反应出来。TYPE_SCROLL_SENSITIVE双向滚动,并及时跟踪数据库的更新,以便更改ResultSet中的数据。ResultSet其他常量游标指针移动类型ResultSet其他常量游标指针操作类型CONCUR_READ_ONLY结果集只读操作CONCUR_UPDATABLE结果集可更新操作

ResultSet其他常量游标指针操作类型ResultSet常用方法游标操作方法booleannext()booleanprevious()booleanabsolute(introw)booleanfirst()booleanlast()voidafterLast()voidbeforeFirst()booleanisAfterLast()booleanisBeforeFirst()booleanisFirst()booleanisLast()ResultSet常用方法游标操作方法ResultSet常用方法获得结果集指针对于的数据TypegetType(StringcolumnLabel)TypegetType(intcolumnIndex)关闭结果集voidclose();ResultSet常用方法获得结果集指针对于的数据通过结果集插入数据rs.moveToInsertRow();rs.updateString("name","cc");rs.updateInt("age",33);rs.insertRow();rs.moveToCurrentRow();通过结果集插入数据rs.moveToInsertRow();通过结果集删除数据rs.absolute(1);rs.deleteRow();通过结果集删除数据rs.absolute(1);通过结果集修改操作rs.absolute(1);rs.updateInt("age",100);rs.updateRow();通过结果集修改操作rs.absolute(1);PreparedStatement解决sql注入问题。能够动态赋值sql参数。Stringsql=“Updateadminsetname=?,age=?”PreparedStatementpstmt=con.prepareStatement(sql);PreparedS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论