JDBC

作者: javaMonkey | 来源:发表于2016-12-21 20:15 被阅读0次

    //////////2016-12-5 ~ 2016-12-6///////////

    int study_data(){

    JDBC(Java DataBase Connectivity):

    一种执行SQL语句的Java API

    JDBC三件事:建立数据库连接,发送SQL语句,返回处理结果

    JDBC模型:

    JDBC API:提供了应用程序对JDBC的管理连接

    JDBC Driver API:支持JDBC管理到驱动器连接

    JDBC常见组件:

    DriverManager(类):管理数据库驱动程序的列表

    Driver(接口):处理与数据库服务器通信

    Connection(接口):接触数据库的所有方法

    Statement:可以使用这个接口常见的对象的SQL语句提交到数据库

    ResultSet:这些对象保存到数据库后,执行使用上对象的SQL查询中检索数据

    SQLException:发生在一个数据库应用程序的任何错误

    Driver Manager:

    管理JDBC的基本服务,注册数据库驱动程序,建立连接等

    内部维护一个Driver队列

    任何数据库驱动程序需要实现向驱动管理器注册自身的静态代码块

    Class.forName(driver_class)加载驱动

    Connection:

    实例通过启动管理器获得

    连接数据库管理系统提供应用程序基本的操作数据的方法

    Statement:

    用于把SQL语句发送到DBMS

    由Connection对象汇总的creatStatement方法所创建

    对查询语句来说,可以使用executeQuery()

    对于创建,删除,修改语句,使用的方法是executeUpdate()

    execute(),executeQuery(),executeUpdate()的区别:

    executeQuery():

    用于产生单个结果集的语句,例如 SELECT 语句

    executeUpdate():

    用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。

    execute():

    用于执行返回多个结果集、多个更新计数或二者组合的语句。

    execute方法应该仅在语句能返回多个ResultSet对象、多个更新计数或ResultSet对象与更新计数的组合时使用。

    ResultSet:

    数据库结果集的数据表,通常通过执行查询数据库的语句生成

    ResultSet对象生命依赖于创建他的Statement

    ResultSet提供一个可向前或向后移动的游标

    ResultSet接口提供用于从当前检索列值的获取方法检索列编号从1开始

    ResultSet可用于更新或插入塑聚,但不建议使用

    PreparedStatement:

    继承自Statement接口,每一个实例中包含已编译的SQL语句

    由Connection实例的prepareStatement()创建

    对于Statement对象拥有更快的执行效率

    提供参数化查询方法,避免发生SQL注入攻击

    SQL注入攻击(SQL Injection):

    源自程序当中的SQL语句拼接

    拼接特定的字符串时SQL语句当中的条件查询失效

    CallableStatement:

    对象为所有的饿DBMS提供了一种以标准行事调用存储过程的方法

    继承自PreparedStatement,同样含有预编译的SQL

    由Connection实例的prepareCall()方法长生实例对象

    提供结果参数(OUT类型的输出参数)

    JDBC批处理:

    JDBC批处理是JDBC性能改进的主要手段

    Statement.addBatch():

    Statement.addBatch(String sql):将给定的 SQL 命令添加到此 Statement 对象的当前命令列表中。通过调用方 法 executeBatch 可以批量执行此列表中的命令。

    Statement.executeBatch():将一批命令提交给数据库来执行,如果全部命令执行成功, 则返回更新计数组成的数组。

    JDBC驱动就是JDBC API吗?

    API 是一个标准的功能列表或参考实现方法,它是接口。

    JDBC 驱动则是实现这些功能的类库,它是实现。

    比如 API 会说 statement.executeQuery("select 1 from dual");

    而驱动程序则要求把用户期望的功能实现它,

    这时 oracle 和 DB2 或 mysql 驱动程序实现的方法就会不一样。

    相关文章

      网友评论

          本文标题:JDBC

          本文链接:https://www.haomeiwen.com/subject/juwrmttx.html