用IDEA从头创建一个jdbc项目修改数据库数据(mysql+navicat)

0. 参考文档

 JDBC是java访问数据库的基石,JDO, Hibernate等只是更好的封装了JDBC。

1、创建项目

IDEA新建一个空项目或者空module 选中 maven

2、安装 jdbc 驱动

在pom.xml中写入

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.18</version>
        </dependency>
    </dependencies>

 刷新maven,等待依赖下载完成。

3、编写代码

jdbc访问数据库步骤:

1. 加载 mysql 驱动
2. 获取连接对象 
3. 创建命令对象
4. 编写sql命令
5. 执行sql命令 返回结果
6. 处理结果
7. 释放资源

3.1 JDBC API

JDBC API是⼀系列的接⼝,它统⼀和规范了应⽤程序与数据库的连接、执⾏SQL语句,并到得到返回结果等各类操作。声明在java.sql与javax.sql包中。

【谐音记忆:jdbc的创始人DCSR)】

  • DriverManager类 管理不同的驱动

  • Connection 接⼝ 应⽤和数据库的连接

  • Statement 接⼝ ⽤于执⾏sql语句

  • ResultSet 接⼝ 保存查询的结果

3.2 基础使用(查询)

如要访问的数据库是navicat,数据库名字是yssh,表名字是 jdbc_user

 先设置参数如下:

// 0. 设置参数
String url = "jdbc:mysql://localhost:3306/yssh?serverTimezone=GMT%2B8";
String user = "root";
String password = "1234";

// 1. 加载 mysql 驱动
Class.forName("com.mysql.cj.jdbc.Driver");// 反射
System.out.println("加载 mysql驱动成功");
// 2. 获取连接对象
Connection connection = DriverManager.getConnection(url, user, password);
System.out.println("获取连接对象成功");
// 3. 创建命令对象
Statement statement = connection.createStatement();
// 4. 编写sql命令
String sql = "select * from jdbc_user";
// 5. 执行sql命令 返回结果
if (connection == null) {
    System.out.println("判断连接对象:连接失败");
    return;
}
System.out.println("判断连接对象:连接成功");
ResultSet resultSet = statement.executeQuery(sql);
// 6. 处理返回的结果
while (resultSet.next()){
    // ResultSet游标最初定位在第一行之前;对next方法的第一次调用使第一行成为当前行;第二次调用使第二行成为当前行,依此类推。
    Object id = resultSet.getObject(1);
    Object name = resultSet.getString(2);
    Object age = resultSet.getInt(3);
    Object grade = resultSet.getString(4);
    System.out.println("\33[0m" + id + " " + name + " " + age + " " + grade);
}
// 7. 关闭资源
resultSet.close();
statement.close();
connection.close();

点击运行,查询结果如下:

3.3 插入数据

public static void main(String[] args) throws ClassNotFoundException, SQLException {
    // 0. 设置参数
    String url = "jdbc:mysql://localhost:3306/yssh?serverTimezone=GMT%2B8";
    String user = "root";
    String password = "1234";
    // 1. 加载 mysql 驱动
    Class.forName("com.mysql.cj.jdbc.Driver");// 反射
    System.out.println("加载 mysql 驱动成功");
    // 2. 获取连接对象
    Connection connection = DriverManager.getConnection(url, user, password);
    System.out.println("获取连接对象成功");
    // 3. 创建命令对象
    Statement statement = connection.createStatement();

    insertUser(statement);
    queryUser(statement);

    // 7. 关闭资源
    statement.close();
    connection.close();
}
public static void insertUser(Statement statement) throws SQLException {
    // 4. 编写sql命令
    String sql = "INSERT INTO `jdbc_user` (  `name`, `age`, `grade`) VALUES ( 'eva', '66', '68');";
    // 5. 执行sql命令 返回结果
    statement.executeUpdate(sql);
}

运行结果如下:

3.4 更新数据

public static void updateUser(Statement statement) throws SQLException {
    // 4. 编写sql命令
    String sql = "UPDATE `jdbc_user` SET `age`='66', `grade`='66' WHERE (`name`='EVA');";
    // 5. 执行sql命令 返回结果
    statement.executeUpdate(sql);
}

  然后在main中调用,运行结果如下:

3.5 删除数据

public static void delUser(Statement statement) throws SQLException {
    // 4. 编写sql命令
    String sql = "DELETE FROM `jdbc_user` WHERE (`id`='7');";
    // 5. 执行sql命令 返回结果
    statement.executeUpdate(sql);
}

 然后在main中调用,运行结果如下:

3.6 全部代码

package com.example;

import java.sql.*;

/**
 * jdbc访问数据库步骤:
 * // 1. 注册驱动(加载驱动)
 * // 2. 获取连接对象
 * // 3. 创建命令对象
 * // 4. 编写sql命令
 * // 5. 执行sql命令 返回结果
 * // 6. 处理结果
 * // 7. 释放资源
 */
public class Main {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        // 0. 设置参数
        String url = "jdbc:mysql://localhost:3306/yssh?serverTimezone=GMT%2B8";
        String user = "root";
        String password = "1234";
        // 1. 加载 mysql 驱动
        Class.forName("com.mysql.cj.jdbc.Driver");// 反射
        System.out.println("加载 mysql 驱动成功");
        // 2. 获取连接对象
        Connection connection = DriverManager.getConnection(url, user, password);
        System.out.println("获取连接对象成功");
        // 3. 创建命令对象
        Statement statement = connection.createStatement();

        // insertUser(statement);
        // updateUser(statement);
        delUser(statement);
        queryUser(statement);

        // 7. 关闭资源
        statement.close();
        connection.close();
    }

    public static void queryUser(Statement statement) throws SQLException {
        // 4. 编写sql命令
        String sql = "select * from jdbc_user";
        // 5. 执行sql命令 返回结果
        ResultSet resultSet = statement.executeQuery(sql);
        // 6. 处理返回的结果
        while (resultSet.next()) {
            Object id = resultSet.getObject(1);
            Object name = resultSet.getString(2);
            Object age = resultSet.getInt(3);
            Object grade = resultSet.getString(4);
            System.out.println(" " + id + " " + name + " " + age + " " + grade);
        }
        // 7. 关闭资源
        resultSet.close();
    }

    public static void insertUser(Statement statement) throws SQLException {
        // 4. 编写sql命令
        String sql = "INSERT INTO `jdbc_user` (  `name`, `age`, `grade`) VALUES ( 'eva', '66', '68');";
        // 5. 执行sql命令 返回结果
        statement.executeUpdate(sql);
    }

    public static void updateUser(Statement statement) throws SQLException {
        // 4. 编写sql命令
        String sql = "UPDATE `jdbc_user` SET `age`='66', `grade`='66' WHERE (`name`='EVA');";
        // 5. 执行sql命令 返回结果
        statement.executeUpdate(sql);
    }

    public static void delUser(Statement statement) throws SQLException {
        // 4. 编写sql命令
        String sql = "DELETE FROM `jdbc_user` WHERE (`id`='7');";
        // 5. 执行sql命令 返回结果
        statement.executeUpdate(sql);
    }
}

 

posted @ 2025-03-27 14:52  sunshine233  阅读(342)  评论(0)    收藏  举报