经常使用接口java
java.sql.Driver
sql
该接口是提供给数据库开发厂商的,主要功能是描述驱动程序,提供驱动信息,最重要的是实现数据库链接的抽象 Connection connect(String url, java.util.Properties info)throws SQLException
,若是某个数据库要实现jdbc规范必须实现该接口。 开发者装载该接口经过 Class.forName(String driverName)
进行,其中 driverName
为全类名。数据库
java.sql.Connection
bash
该接口是数据库jdbc 链接的抽象层,主要生成SQL并向数据库发送框架
java.sql.Statement
java.sql.PreparedStatement
java.sql.CallableStatement
同时事务级别 事务的commit,事务的callback,链接的生命周期 也由 Connection 来操做。大数据
事务的隔离级别url
int TRANSACTION_NONE = 0
无事务int TRANSACTION_READ_UNCOMMITTED = 1
读取未提交int TRANSACTION_READ_COMMITTED = 2
读取已提交int TRANSACTION_REPEATABLE_READ = 4
可重复读取int TRANSACTION_SERIALIZABLE = 8
可序列化java.sql.Statement
spa
用于执行静态SQL语句并返回它所生成结果的对象。code
类图:cdn
Statement:由createStatement建立,用于发送简单的SQL语句(不带参数) 。
statement 没有 set<Type>
之类的方法,因此sql必须做为一个总体传入。例如
//获取statement
Statement statement = jdbcMysqlConnection.statement();
// sql 必须做为总体进行操做
ResultSet resultSet = statement.executeQuery("select * from sys_user");
while (resultSet.next()) {
System.out.println(resultSet.getString(1));
}
复制代码
PreparedStatement :继承自Statement接口,由preparedStatement建立,用于发送含有一个或多个参数的SQL语句。PreparedStatement对象比Statement对象的效率更高,而且能够防止SQL注入,因此咱们通常都使用PreparedStatement,大数据量比较消耗资源。例如
//可传入 字段占位符 ?
PreparedStatement preparedStatement = jdbcMysqlConnection.preparedStatement("select * from sys_role where state =?");
// 对占位符进行赋值操做 从1 开始 一旦使用占位符 必须对占位符进行赋值 才能 进行 execute系列操做
preparedStatement.setString(1,"1");
ResultSet resultSet = preparedStatement.executeQuery();
复制代码
CallableStatement:继承自PreparedStatement接口,由方法prepareCall建立,用于调用存储过程
statement 经常使用方法:
execute(String sql)
:运行语句,返回是否有结果集executeQuery(String sql)
:运行select语句,返回ResultSet结果集。executeUpdate(String sql)
:运行insert/update/delete操做,返回更新的行数。addBatch(String sql)
:把多条sql语句放到一个批处理中。executeBatch()
:向数据库发送一批sql语句执行。set<Type>(int colunmIndex,Type val)
系列接口PreparedStatement
回填参数值
java.sql.ResultSet
主要用来获取sql执行后返回的结果集
获取字段数据操做
- 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):获取在数据库里任意类型的数据。
游标操做
- next():移动到下一行
- previous():移动到前一行
- absolute(int row):移动到指定行
- beforeFirst():移动resultSet的最前面。
- afterLast() :移动到resultSet的最后面。