文章目录
JDBC3.0标准中的常用接口与类
1. Driver 接口
Driver接口的作用是来定义数据库驱动应该具备的一些能力. 比如与数据库建立连接的方法的定义所有支持java语言连接的数据库都实现了该接口, 实现该接口的类我们称之为数据库驱动类. 在程序中要连接数据库, 必须先通过JDK的反射机制加载数据库驱动类, 将其实例化. 不同的数据库驱动类的类名有区别
加载MySQL5驱动: Class.forName(“com.mysql.jdbc.Driver”);
加载MySQL8驱动: Class.forName(“com.mysql.cj.jdbc.Driver”);
加载Oracle驱动: Class.forName(“oracle.jdbc.driver.OracleDriver”);
2. Driver Manager类
Driver Manager通过实例化的数据库驱动对象, 能够建立应用程序与数据库之间连接. 并返回Connection接口类型的数据库连接对象
2.1 常用方法
-
getConnection(String jdbcUrl, String user, String password)
该方法通过访问数据库的URL, 用户名, 以及密码, 返回对应的数据库的Connection对象
2.2 JDBC URL
与数据库连接时, 用来连接到指定数据库标识符. 在URL中包括了该数据库的类型, 地址, 端口, 库名称等信息. 不同品牌数据库的连接URL不同
3. Connection 接口
Connection与数据库的连接(会话) 对象. 我们可以通过该对象执行sql语句并返回结果.
-
连接 MySql 数据库:
Connection conn = DriverManager.getConnection("jdbc:mysql://host:port/database?serverTimezone=GMT", "user", "password");
-
连接 Oracle 数据库:
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@host:port:database", "user", "password");
-
连接 SqlServer 数据库:
Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://host:port;DatabaseName=database", "user", "password");
3.1 常用方法
- createStatement(): 创建向数据库发送SQL的Statement接口类型的对象
- preparedStatement(sql): 创建向数据库发送预编译sql的PreparedStatement接口类型的抓了
- prepareCall(sql): 创建执行存储过程的CallableStatement接口类型的对象
- setAutoCommit(boolean autoCommit): 设置事务是否自动提交
- commit(): 在链接上手动提交事务
- rollback(): 在此链接上回滚事务
4. Statement接口
用于执行静态SQL语句并返回它所生成结果的对象
由 createStatement 创建, 用于发送简单的 SQL 语句(不支持动态绑定) 。
4.1 常用方法
- execute(String sql): 执行参数中的SQL, 返回时否有结果集 boolean
- executeQuery(String sql): 运行select语句, 返回ResultSet对象
- executeUpdate(String sql): 运行insert/update/delete操作, 返回更新的行数
- addBatch(String sql): 把多条sql语句放入一个批处理中
- executeBatch(String sql): 向数据库发送一批sql语句执行.
5. PreparedStatement接口
继承自Statement接口, 有PreparedStatement创建, 用于发送含有一个或多个参数的SQL语句. PreparedStatement对象比Statement对象的效率要更高, 并且可以防止SQL注入, 所以我们一般都使用PreparedStatment.
5.1 常用方法
- addBatch() 把当前SQL语句加入到一个批处理中
- execute() 执行当前SQL 返回一个boolean值
- executeUpdate() 运行insert/update/delete操作, 返回更新的行数
- executeQuery() 执行当前的查询, 返回一个结果集对象
- setDate(int parameterIndex, Date x) 指定位置绑定一个java.sql.Date对象
- setxxx(int parameterIndex, xxx): 指定位置绑定一个xxx类型的值
6. ResultSet接口
ResultSet 提供检索不同类型字段的方法。
6.1 常用方法
- getString(int index)、 getString(String columnName)
获得在数据库里是 varchar、 char 等类型的数据对象。 - getFloat(int index)、 getFloat(String columnName)
获得在数据库里是 Float 类型的数据对象。 - getDate(int index)、 getDate(String columnName)
获得在数据库里是 Date 类型的数据。 - getBoolean(int index)、 getBoolean(String columnName)
获得在数据库里是 Boolean 类型的数据。 - getObject(int index)、 getObject(String columnName)
获取在数据库里任意类型的数据。
6.2ResultSet 对结果集进行滚动的方法
- next(): 移动到下一行。
- Previous(): 移动到前一行。
- absolute(int row): 移动到指定行。
- beforeFirst(): 移动 resultSet 的最前面。
- afterLast() : 移动到 resultSet 的最后面。
7. CallableStatement接口
继承自PreparedStatement接口, 由方法prepareCall创建, 用于调用数据库的存储过程.