【JDBC】JDBC API 详解 ③ ( Statement 接口简介 | SQL 语句说明 - DML、DDL、DQL | Statement 接口代码示例 )

2023-03-25 11:44:31 浏览数 (2)

文章目录

  • 一、Statement 接口简介
  • 二、SQL 语句说明 - DML、DDL、DQL
  • 三、Statement 接口代码示例

一、Statement 接口简介


Statement 类作用 :

  • 执行 SQL 语句 :
    • 执行 DML 语句 : 对数据的 增加 , 删除 , 修改 操作 ; 返回影响数据的行数 ;
    • 执行 DDL 语句 : 对数据库和表 的 增加 , 删除 , 修改 操作 ; 执行成功 返回 0 ;
代码语言:javascript复制
    int executeUpdate(String sql) throws SQLException;
  • 执行 DQL 语句 : 对数据的查询操作 ; 返回 ResultSet 查询结果对象 ;
代码语言:javascript复制
    ResultSet executeQuery(String sql) throws SQLException;

二、SQL 语句说明 - DML、DDL、DQL


三种 SQL 语句说明 :

  • DML 语句 : 英文全称 Data Manipulation Language , 针对 数据库 中的数据 进行 增加 , 删除 , 修改 操作 的 SQL 语句 ;
代码语言:javascript复制
	// 增加数据
	INSERT INTO user (name, age, email) VALUES ('John', 25, 'john@example.com');
	// 删除数据
	DELETE FROM user WHERE age < 18;
	// 修改数据
	UPDATE user SET age = 26 WHERE name = 'John';
  • DDL 语句 : 英文全称 Data Definition Language , 针对 数据库 , 数据表 , 视图 , 索引 的 增加 , 删除 , 修改 操作 的 SQL 语句 ;
代码语言:javascript复制
// 创建数据库
CREATE TABLE user (
    id INT PRIMARY KEY,
    name VARCHAR(20),
    age INT,
    email VARCHAR(50)
);
// 修改数据库表字段
ALTER TABLE user ADD COLUMN phone VARCHAR(20);
// 删除数据库表
DROP TABLE user;
  • DQL 语句 : 英文全称 Data Query Language , 查询 数据库的 SQL 语句 , 就是常见的查询语句 :
代码语言:javascript复制
	SELECT * FROM user WHERE age > 18;

三、Statement 接口代码示例


下面的示例是执行 DQL 查询语句的代码 ;

代码示例 :

代码语言:javascript复制
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
    conn = DriverManager.getConnection(url, username, password);
    stmt = conn.createStatement();
    String sql = "SELECT * FROM user";
    rs = stmt.executeQuery(sql);
    while (rs.next()) {
        int id = rs.getInt("id");
        String name = rs.getString("name");
        int age = rs.getInt("age");
        System.out.println("id: "   id   ", name: "   name   ", age: "   age);
    }
} catch (SQLException e) {
    e.printStackTrace();
} finally {
    if (rs != null) {
        try {
            rs.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    if (stmt != null) {
        try {
            stmt.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    if (conn != null) {
        try {
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

0 人点赞