• 20.3 JDBC中常用的类和接口


      在Java语言中提供了丰富的类和接口用于数据库编程,利用这些类和接口可以方便地进行数据访问和处理,本节将介绍一些常用的JDBC接口和类,这些类或接口都在java.sql包中。
    1、Connetction接口
      Connetction接口代表与特定的数据库的连接,在连接上下文中执行SQL语句并返回结果,它的常用方法如下所示:

    方法 功能描述
    createStatement() 创建Statement对象
    createStatement(int resulteSetType, int resulteSetCocurrency) 创建一个Statement对象,该对象将生成具有给定类型、并发性和可保存性的ResulteSet对象
    preparedStatement() 创建预处理对象preparedStatement
    isReadOnly() 查看当前Connetction对象的读取模式是否为只读形式
    setReadOnly() 设置当前Connetction对象的读写模式,默认为非只读模式
    commit() 使所有上一次提交/回滚后进行的更改成为持久更改,并释放此Connection对象当前持有的所有数据库锁
    roolback() 取消在当前事务中进行的所有更改,并释放此Connection对象当前持有的所有数据库锁
    close() 立即释放此Connection对象的数据库和JDBC资源,而不是等待它们被自动释放

    2、Statement接口
      Statement接口用于在已经建立连接的基础上向数据库发送SQL语句。在JDBC中有3种Statement对象,分别是Statement、PreparedStatement和CallableStatement。Statement对象用于执行不带参数的简单的SQL语句;PreparedStatement继承了Statement,用来执行动态的SQL语句;CallableStatement继承了PreparedStatement,用于执行对数据库的存储过程的调用。Statement接口的常用方法如下所示:

    方法 功能描述
    execute(String sql) 执行静态的SELECT语句,该语句可能返回多个结果集
    executeQuery(String sql) 执行给定的SQL语句,该语句返回单个ResulteSet对象
    clearBatch() 清空此Statement对象的当前SQL命令列表
    executeBath() 将一批命令提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数据。数据元素的排序与SQL语句的添加顺序对应
    addBatch(String sql) 将给定的SQL命令添加到此Statement对象的当前命令列表中。如果驱动程序不支持批量处理,将抛出异常
    close() 释放Statement实例占用的数据库和JDBC资源

    3、PreparedStatement接口
      PreparedStatment接口用来动态地执行SQL语句。通过PrepardStatement实例执行的动态SQL语句,将被预编译并保存到PreparedStatement实例中,从而可以反复第执行该SQL语句。PreparedStatement接口的常用方法如下所示:

    方法 功能描述
    setInt(int index, int k) 将指定位置的参数设置为int值
    setFloat(int index, float f) 将指定位置的参数设置为float值
    setLong(int index, long l) 将指定位置的参数设置为long值
    setDouble(int index, double d) 将指定位置的参数设置为double值
    setBoolean(int index, boolean b) 将指定位置的参数设置为boolean值
    setDate(int index, date date) 将指定位置的参数设置为date值
    executeQuery() 在此PreparedStatement对象中执行SQL查询,并返回该查询生成的ResulteSet对象
    setString(int index, String s) 将指定位置的参数设置为对应的String值
    setNull(int index, intsqlType) 将指定位置的参数设置为SQL NULL
    executeUpdate() 执行前面包含的参数的动态INSERT、UPDATE或DELETE语句
    clearParameters() 清除当前所有参数的值

    4、DriverManager类
      DriverManager类用来管理数据库中的所有驱动程序。它是JDBC的管理层,作用域用户和驱动程序之间,跟踪可用的驱动程序,并在数据库的驱动程序之间建立连接。如果通过getConnection()方法可以建立连接,则经连接返回,否则抛出SQLException异常。DriverManager类的常用方法如下所示:

    方法 功能描述
    getConnection(String url, String user, String password) 指定3个入口参数(依次是连接数据库的URL、用户名、密码)来获取与数据库的连接
    setLoginTimeout() 获取驱动程序试图登录到某一数据库是可以等待的最长时间,以秒为单位
    println(String message) 将一条消息打印到当前JDBC日志流中

    5、ResulteSet接口

      ResultSet接口类似于一个临时表,用来暂时存放数据库卡查询操作所获得结果集。ResulteSet实例具有指向当前数据行的指针,指针开始的位置在第一条记录的前面,通过next()方法可将指针向下移。
      在JDBC2.0(JDK1.2)之后,该接口添加了一组更新方法updateXXX(),该方法有两个重载方法,可根据列的索引号和列的名称来更新指定列。但该方法并没有将对数据进行的操作同步到数据库中,需要执行updateRow()或insertRow()方法更新数据库。ResulteSet接口的常用方法如下:

    方法 功能描述
    getint() 以int形式获取此ResulteSet对象的当前行的指定列值。如果列值是NULL,则返回值是0
    getFloat() 以float形式获取此ResulteSet对象的当前行的指定列值。如果列值是NULL,则返回值是0
    getDate()

    以date形式获取此ResulteSet对象的当前行的指定列值。如果列值是NULL,则返回值是null

    getBoolean() 以boolean形式获取此ResulteSet对象的当前行的指定列值。如果列值是NULL,则返回值是null
    getString() 以String形式获取此ResulteSet对象的当前行的指定列值。如果列值是NULL,则返回值是null
    getObject() 以Object形式获取此ResulteSet对象的当前行的指定列值。如果列值是NULL,则返回值是null
    first() 将指针移到当前记录的第一行
    last() 将指针移到当前记录的最后一行
    next() 将指针向下移一行
    beforeFirst() 将指针移到集合的开头(第一行位置)
    afterLast() 将指针移到集合的尾部(最后一行位置)
    absolute(int index) 将指针移到ResulteSet给定编号的行
    isFirst() 判断指针是否位于当前ResulteSet集合的第一行。如果是返回true,则返回false
    isLast() 判断指针是否位于当前ResulteSet集合的最后一行。如果是返回true,则返回false
    updateInt() 用int值更新指定列
    updateFloat() 用float值更新指定列
    updateLong() 用指定的long值更新指定列
    updateString() 用指定的String值更新指定列
    updateObject() 用Object值更新指定列
    updateNull() 将指定的列值修改为NULL
    updateDate() 用指定的date值更新指定列
    updateDouble() 用指定的double值更新指定列
    getrow() 查看当前行的索引号
    insertRow() 将插入行的内容插入到数据库
    updateRow() 将当前行的内容同步到数据表
    deleteRow() 删除当前行,但并不同步到数据库中,而是在执行close()方法后同步到数据库
  • 相关阅读:
    JStack分析cpu消耗过高问题
    Machine Learning in Action – PCA和SVD
    Machine Learning in Action -- FP-growth
    Machine Learning in Action -- 树回归
    Machine Learning in Action -- 回归
    Kafka 0.8 配置参数解析
    统计学习方法笔记 -- 隐马尔可夫模型
    Machine Learning in Action -- AdaBoost
    统计学习方法笔记 -- Boosting方法
    Andrew Ng机器学习公开课笔记–Reinforcement Learning and Control
  • 原文地址:https://www.cnblogs.com/studycode/p/9612832.html
Copyright © 2020-2023  润新知