版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JDBC Oracle 数据库,Java程序和JDBC及数据库系统的关系,Java应用程序,数据库,数据库,传统C/S(客户/服务)器模式,B/S(浏览器/服务器)应用程序,JDBC开发过程,JDBC中常用的类型,DriverManager Connection Statement(PreparedStatement) ResultSet,SQL,JDBC工作流程,驱动管理器,连接,语句,结果集,创建,创建,创建,驱动程序,数据库,数据,DriveManger,Connection,Statement PreparedStatement,ResultSet,getconnection,crea
2、teStatment,executeQuery,JDBC连接数据过程,加载数据库驱动 创建数据库连接 创建语句对象 通过语句对象向数据库发送并执行sql语句 得到数据库的结果集(可选),数据库驱动,ODBC驱动 sun.jdbc.odbc.JdbcOdbcDriver Oracle驱动 oracle.jdbc.driver.OracleDriver,加载驱动,加载驱动 Class.forName(sun.jdbc.odbc.JdbcOdbcDriver“) Class.forName(oracle.jdbc.driver.OracleDriver“) 注意加载驱动需要导入第三方驱动包,创建数据
3、库连接,相关信息 数据库URL 数据库连接用户名 数据库连接密码,数据库URL,JDBC使用URL来标识驱动程序和数据源两者的位置,格式如下, jdbc: jdbc: 例子如下: jdbc:odbc:TestDB jdbc:oracle:thin:33:1521:ora,创建数据库连接,创建数据库连接 Connection con= DriverManager.getConnection( jdbc:oracle:thin:33:1521:ora, scott, tiger);,创建语句对象(增删改),String sql = insert into a
4、dmin values(张三,20); Statement stmt = con.createStatement(); int row = stmt.executeUpdate(sql); 对于增删改的操作,主要的变化在于SQL语句。 连接对象和语句对象使用完毕必须释放资源 stmt.close(); con.close();,查询操作,String sql = “select * from admin; Statement stmt = con.createStatement(); ResultSet rs = stmt. executeQuery(sql);,对于结果集的操作,结果集游标
5、con.createStatement() 等价于 con.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY) 游标的移动类型、游标的操作类型,ResultSet其他常量,游标指针移动类型 TYPE_FORWARD_ONLY 表示游标只能向前移动。 TYPE_SCROLL_INSENSITIVE 双向滚动,但不及时更新,就是如果数据库里的数据修改过,并不在ResultSet中反应出来。 TYPE_SCROLL_SENSITIVE 双向滚动,并及时跟踪数据库的更新,以便更改ResultSet中的数据。,
6、ResultSet其他常量,游标指针操作类型 CONCUR_READ_ONLY 结果集只读操作 CONCUR_UPDATABLE 结果集可更新操作,ResultSet常用方法,游标操作方法 boolean next() boolean previous() boolean absolute(int row) boolean first() boolean last() void afterLast() void beforeFirst() boolean isAfterLast() boolean isBeforeFirst() boolean isFirst() boolean isLast
7、(),ResultSet常用方法,获得结果集指针对于的数据 Type getType (String columnLabel) Type getType (int columnIndex) 关闭结果集 void close();,通过结果集插入数据,rs.moveToInsertRow(); rs.updateString(name, cc); rs.updateInt(age, 33); rs.insertRow(); rs.moveToCurrentRow();,通过结果集删除数据,rs.absolute(1); rs.deleteRow();,通过结果集修改操作,rs.absolute(
8、1); rs.updateInt(age, 100); rs.updateRow();,PreparedStatement,解决sql注入问题。 能够动态赋值sql参数。 String sql=“ Update admin set name=?,age=?” PreparedStatement pstmt=con.prepareStatement(sql);,使用PreparedStatement对象,String sql = “Update admin set name=?,age=?” 用set方法给主机变量赋值: pstmt.setString(1,”张三”); pstmt.setStr
9、ing(2,20); 执行SQL语句 pstmt.executeUpdate(); 关闭语句 pstmt.close();,CallableStatement,String sql = “? = call get_age(?)” cstmt.registerOutParameter(1, java.sql.Types.INTEGER); cstmt.setString(2, aa); cstmt.execute(); int age = cstmt.getInt(1);,关于事务的实现,事务:代表着一系列的操作语句。事务只有两个状态,要么成功,要么失败。成功时提交,失败时回滚。 举例如下: con.getAutoCommit(false); Statement stmt=con.createStatement() try stmt.execute
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民非内部控制制度
- 济南工会内部控制制度
- 海尔内部核管理制度
- 营口理工学院《高分子材料成型模具》2024-2025学年第二学期期末试卷
- 煤矿内部罚款制度规定
- 环卫办公室内部控制制度
- 画室内部规章制度
- 监理企业内部制度
- 监理单位内部规章制度
- 禁毒大队内部管理制度
- 医药行业合规管理手册
- 数学试题卷+答案解析【中国第一高中】【湖北卷】湖北省2025年华中师大一附中2025年高考学科核心素养卷暨考前测试卷(最后一卷)(5.31-6.1)
- 2025江苏省国信集团有限公司招聘30人笔试题库历年考点版附带答案详解
- 开荒保洁培训课件
- 非学历教育合作办学协议
- 铁路押运安全培训课件
- 一年级下册道德与法治复习计划
- 走进物联网 第2版 课件2.3 物联网的无线传感网络技术
- 警察车辆盘查课件
- 2024-2025学年苏州信息职业技术学院单招《职业适应性测试》真题【全优】附答案详解
- 肝性脑病精准治疗策略-洞察及研究
评论
0/150
提交评论