美文网首页
JDBC 基础(上)

JDBC 基础(上)

作者: 旦暮何枯 | 来源:发表于2019-03-22 10:59 被阅读0次

    JDBC URL 的创建

    JDBC URL:后端数据库的唯一标识符。
    jdbc:子协议,并且载入服务器的主机名、端口、数据库名(或引用)。

    jdbc:mysql://10.164.172.20:3306/cloud_study
    
    • jdbc 协议,固定不变的
    • mysql 子协议,DriverManager 确定数据库驱动
    • 10.164.172.20:3306/cloud_study 子名称部分
      • 10.164.172.20 主机
      • 3306 数据库端口号
      • cloud_study 数据库 database

    常用的三种 jdbc url 创建

    jdbc:mysql://<ip>:<port>/database
    
    jdbc:oracle:thin:@<ip>:<port>:database
    
    jdbc:microsoft:sqlserver://<ip>:<port>;DatabaseName=database
    

    JDBC API

    image.png
    1. JDBC Driver 通过 Class.forName 向 DriverManager 加载数据库驱动;
    2. DriverManager 的 getConnection 方法建立一条到后端数据库的物理连接;
    3. Connection 对象创建通过 createStatement 方法创建一个或者多个 Statement 对象;
    4. statement 对象执行 sql 语句,返回 ResultSet 对象或者 int 对象;

    Statement 对象相当于 sql 容器;可以承载 sql 语句;并通过 executeQuery 执行查询语句,返回一个 ResultSet 对象。execute 执行删语句,executeUpdate 执行更新语句 返回一个 int 对象;

    statement API

    1. execute(String sql):执行SQL 删语句,如果返回值是结果集则为true,否则为false
    2. executeQuery(String sql):执行SQL 查询语句,返回值为ResultSet
    3. executeUpdate(String sql):执行SQL 更新语句,返回值为所影响的行数 
    4. addBatch(String sql):向当前Statement对象的命令列表中添加新的批处理SQL语句
    5. clearBatch():清空当前Statement对象的命令列表
    6. executeBatch():执行当前Statement对象的批处理语句,返回值为每个语句所影响的函数数组
    7. getConnection():返回创建了该Statement对象的Connection对象
    8. getQueryTimeout():获取等待处理结果的时间
    9. setQueryTimeout():设置等待处理结果的时间
    

    ResultSet API

    ResultSet 对象代表了 sql 查询的一个结果,所以 ResultSet 对象的内容其实是一张二元表。

    1. first()/beforeFirst():将游标移动到ResultSet中第一条记录(的前面,通过 next() 方法返回第一条记录位置)
    2. last()/afterLast():将游标移动到ResultSet中最后一条记录(的后面,通过 previous() 方法返回第一条记录位置)
    3. absolute(int column):将游标移动到相对于第一行的指定行,负数则为相对于最后一条记录
    4. relative(int rows):将游标移动到相对于当前行的第几行,正为向下,负为向上
    5. next():将游标下移一行
    6. previous():将游标上移一行
    
    7. insertRow():向当前ResultSet和数据库中被插入行处插入一条记录
    8. deleteRow():将当前ResultSet中的当前行和数据库中对应的记录删除
    9. updateRow():用当前ResultSet中已更新的记录更新数据库中对应的记录
    10. cancelUpdate():取消当前对ResultSet和数据库中所做的操作
    11. findColumn(String columnName):返回当前ResultSet中与指定列名对应的索引
    12. getRow():返回ResultSet中的当前行号
    13. refreshRow():更新当前ResultSet中的所有记录
    14. getMetaData():返回描述ResultSet的ResultSetMetaData对象
    15. isAfterLast(): 是否到了结尾
    16. isBeforeFirst(): 是否到了开头
    17. isFirst():是否第一条记录   
    18. isLast(): 是否最后一条记录
    19. wasNull():检查列值是否为NULL值,如果列的类型为基本类型,且数据库中的值为0,那么这项检查就很重要。由于数据库NULL也返回0,所以0值和数据库的NULL不能区分。如果列的类型为对象,可以简单地将返回值与null比较
    20. close():关闭当前ResultSet
    

    相关文章

      网友评论

          本文标题:JDBC 基础(上)

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