【jdbc】oracle java tutorial—JDBC Basics
来源:互联网 发布:php仿qq聊天系统 编辑:程序博客网 时间:2024/05/22 06:08
使用 JDBC 处理 SQL语句
一般使用 JDBC 处理 SQL语句 ,遵循以下几个步骤: 详情参看: oracle 官网 JDBC Basics
★ 建立 一个 连接
★ 创建一个 statement
★ 执行查询
★ 处理结果集对象(ResultSet 对象)
★ 关闭连接
建立连接
通常,JDBC 应用连接目标数据源使用以下两个类中的一个:
★ DriverManager 该实现类通过指定数据库 的 url 连接数据库 ,在连接数据库之前,必须要手动加载 JDBC 驱动 。然后 他会自动加载 类路径下的任意的 JDBC 驱动。
加载 JDBC 驱动(以 mysql 为例):
引用 mysql 驱动 jar 包
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.9</version> </dependency>
★ DataSource 相比 DriverManager 实现类,该接口是首选的 ,因为该接口可以设置数据源的底层信息。DataSource 支持 数据库连接池 和 分布式事物。
使用 DataSource 对象获取连接
创建 Statement
一个 Statement 代表 一条 SQL 语句 的接口 ,通过 执行 Statement 对象 ,生成 ResultSet 对象 。
有以下三种 Statement:
★ Statement
★ PreparedStatement (继承 Statement) :用于预编译 可能包含输入参数的 SQL 语句 ,通过 Connection 对象获取 ,可以动态设置输入参数,以 ?(问号)作为占位符。
package com.ycit;import org.junit.Test;import java.sql.*;/** * Created by xlch on 2016/11/10. */public class DbConnection { @Test public void connection() { Connection connection = null; PreparedStatement statement = null; try { Class.forName("com.mysql.jdbc.Driver"); // java 反射 connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/xlch", "root", "root");//参数分别代表 url 、userName 、password statement = connection.prepareStatement("select * from user where id = ?"); statement.setInt(1, 1);//动态设置 id 为 1,index 为 1(起始为1) ResultSet set = statement.executeQuery(); while (set.next()) { System.out.println("id===" + set.getInt("id") + " name===" + set.getString(2));//可以通过 index 或者 labelName 获取 } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { if (statement != null) { try { statement.close(); } catch (SQLException e) { e.printStackTrace(); } } if (connection != null) { try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } } }}
★ CallableStatement (继承 PreparedStatement)
执行查询
查询方法有如下几种:
★ execute()
如果执行后返回的是 一个 ResultSet 对象 ,则返回 true ,否则 返回 false. 如果为 true ,则可以再次调用 statement.getResultSet() 获取结果集。
★ executeQuery() : 返回 ResultSet 结果集。
★ executeUpdate() :返回 一个整数 ,代表被影响的记录数 ,当 insert 、delete 、update 时 使用 该方法。
处理 结果集(ResultSet)对象
见 上面栗子。
关闭连接
见上面栗子。
使用事物
con.setAutoCommit(false); //开始时con.rollback();//发生异常时回滚con.commit();//结束时提交
事物的四种隔离级别
TRANSACTION_NONE
Not supportedNot applicableNot applicableNot applicableTRANSACTION_READ_COMMITTED
SupportedPreventedAllowedAllowedTRANSACTION_READ_UNCOMMITTED
SupportedAllowedAllowedAllowedTRANSACTION_REPEATABLE_READ
SupportedPreventedPreventedAllowedTRANSACTION_SERIALIZABLE
SupportedPreventedPreventedPrevented- 【jdbc】oracle java tutorial—JDBC Basics
- Java JDBC Tutorial
- JAVA JDBC Tutorial(1)
- Java Tutorial JDBC
- Java JDBC 连接Oracle
- oracle jdbc java
- JAVA JDBC 连接 Oracle
- 【Java.JDBC/ORM】Oracle JDBC版本区别
- Spring JDBC Pagination Tutorial
- Java Programming with Oracle JDBC
- Java Programming with Oracle JDBC
- java JDBC访问Oracle数据库
- Oracle Java JDBC编程注意事项
- java oracle jdbc 连接池
- java JDBC访问Oracle数据库
- java JDBC访问Oracle数据库
- java JDBC访问Oracle数据库
- java JDBC访问Oracle数据库
- 获取用户名跟密码的servlet小案例
- MTK Camera 如何实现插值(转载)
- 大数相加与相乘算法实现
- PCB设计布局过程和规范
- 如何退出当前所有activity,重新进入loginActivity界面
- 【jdbc】oracle java tutorial—JDBC Basics
- ctype.h头文件
- python处理不合法的asccii码
- DAY24:leetcode #63 Unique Paths II
- thinkphp5使用swiftmailer
- 常见加密算法分类,用途,原理以及比较
- 搭建IE(IE8、IE9、IE10、IE11)兼容性测试环境
- 99%的人理解错 HTTP 中 GET 与 POST 的区别
- java.util.Set学习笔记