JDBC查询插入操作

时间:2021-10-25 01:52:24

好久没写过JDBC,也有些记不清了,在此重新梳理一下

比如操作表test_message

 CREATE TABLE `test_message` (
      `message_id` int(10) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
      `content` varchar(100) DEFAULT NULL
 )

查询

import java.sql.*;

public class Main {
    public static void main(String[] args) {
        // 初始化
        Connection conn = null;
        ResultSet rs = null;
        PreparedStatement prst = null;

        try {
            // 加载数据库驱动,完成后会自动执行驱动中的static代码,生成DriverManager对象
            Class.forName("com.mysql.cj.jdbc.Driver");

            // 建立连接
            conn = DriverManager.getConnection("jdbc:mysql:///test?serverTimezone=GMT+8", "root", "hello");

            // 全表查询
            String sql = "SELECT * FROM test_message";

            // 创建prepareStatement对象
            prst = conn.prepareStatement(sql);

            // 执行SQL并得到一个封装好的结果集
            rs = prst.executeQuery();

            // 遍历结果集
            while (rs.next()) {
                System.out.println("Id: "   rs.getInt("message_id")   "tContent: "   rs.getString("content"));
            }

            // 释放资源
            if (rs != null) {
                rs.close();
            }
            if (prst != null) {
                prst.close();
            }
            if (conn != null) {
                conn.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (rs != null) {
                try {
                    rs.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
                conn = null;
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
                conn = null;
            }
            if (prst != null) {
                try {
                    prst.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
                prst = null;
            }
        }
    }
}

插入数据 SQL语句动态渲染参数

// ?作为占位符
String sql = "INSERT INTO test_message(content) VALUE(?)";

prst = connection.prepareStatement(sql);

// 渲染SQL语句 strString渲染一个String类型  1表示SQL中第一个占位符
prst.setString(1, "Hello,World!");

// 执行SQL
rs = prst.executeUpdate();