zoukankan      html  css  js  c++  java
  • 关于Java(JDBC连接数据库)

    Processing SQL Statements with JDBC

    处理JDBC中的SQL语句

    这节主要是 JDBC 与数据库交互的基本步骤

    JDBC的基石是DriverManager,通过它,Java程序可以与数据库交互

    创建 Connection

    一个Connection,连接着数据源和Java程序,表示一个数据连接

    数据源可以是 DBMS,常规文件系统,或者是其他JDBC驱动支持的数据源

    生成 Statement

    Statement是一个接口,代表SQL语句

    JDBC中,有3类语句:

    • Statement
      简单实现SQL语句,无参
      一般调用 Connection 的 createStatement 实例方法来获得

    • PreparedStatement
      继承Statement
      预编译SQL语句,可能有输入参数

    • CallableStatement
      继承PreparedStatement
      执行存储过程,可能存在输入或输出参数

    执行 Statement

    执行Statement,可以调用以下3种方法:

    • execute
      当执行返回的第一个对象是ResultSet,则该方法返回true
      该方法可以返回多个ResultSet对象
      重复使用 Statement.getResultSet ,来获取这些ResultSet

    • executeQuery
      返回一个ResultSet

    • executeUpdate
      返回SQL语句影响的数据记录的行数
      当使用SQL语句进行增删改时,使用该方法

    处理 ResultSet

    使用游标来遍历ResultSet,从而获取数据
    此处游标,并非数据库的游标
    开始时,游标在结果集第一行之前

    关闭 Connection

    当语句执行完,则顺序调用 ResultSet,Statement和Connection 各自的 close 方法,来释放资源一般,这些语句置于 finally 语句块中
    如此,即使程序有异常,也不会影响资源的释放

    在 JDBC 7及更新的版本中,可以使用 try-with-resource 来自动关闭 ResultSet,Statement和Connection

    基本格式如下:

    try (Statement stmt = con.createStatement()) {
        // ...
    }
    

    代码实例:

    public static void viewTable(Connection con) throws SQLException {
    
        String query = "select COF_NAME, SUP_ID, PRICE, " +
                       "SALES, TOTAL " +
                       "from COFFEES";
    
        try (Statement stmt = con.createStatement()) {
    
            ResultSet rs = stmt.executeQuery(query);
    
            while (rs.next()) {
                String coffeeName = rs.getString("COF_NAME");
                int supplierID = rs.getInt("SUP_ID");
                float price = rs.getFloat("PRICE");
                int sales = rs.getInt("SALES");
                int total = rs.getInt("TOTAL");
                System.out.println(coffeeName + ", " + supplierID +
                                   ", " + price + ", " + sales +
                                   ", " + total);
            }
        } catch (SQLException e) {
            JDBCTutorialUtilities.printSQLException(e);
        }
    }
  • 相关阅读:
    (转)[数据库基础]——编码标准之命名
    学习进度-06
    学习进度-05
    学习进度-04 Scala的学习
    学习进度-03
    学习进度-02
    学习进度-01
    《用例分析技术》读后感-01
    《掌握需求过程》阅读笔记-02
    《掌握需求过程》读后感-01
  • 原文地址:https://www.cnblogs.com/CoolSoul/p/4984973.html
Copyright © 2011-2022 走看看