JDBC知识回顾

JDBC 简单介绍

  • JDBC 是一种用于执行SQL语句的Java API,能够为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。java 提供了jdbc的接口规范,对应数据库厂商依照规范进行驱动类库开发,提供给开发者。 应用程序与数据以jdbc桥接的方式进行交互,任何基于JDBC 的 ORM 框架都是对JDBC 操做的封装

jdbc 流程图

  • 经常使用接口java

    • java.sql.Driversql

      该接口是提供给数据库开发厂商的,主要功能是描述驱动程序,提供驱动信息,最重要的是实现数据库链接的抽象 Connection connect(String url, java.util.Properties info)throws SQLException,若是某个数据库要实现jdbc规范必须实现该接口。 开发者装载该接口经过 Class.forName(String driverName)进行,其中 driverName 为全类名。数据库

    • java.sql.Connectionbash

      该接口是数据库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.Statementspa

      用于执行静态SQL语句并返回它所生成结果的对象。code

      类图:cdn

      statement 类图
      statement 类图

      • 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的最后面。
  • resultSet statement connection 都是须要关闭 遵循从下游到上游的方向依次关闭
相关文章
相关标签/搜索