万金流
以码会友。 吾Q:578751655。 水平有限,轻喷,谢!

前言

  • 本文采用jdbc的mysql实现mysql-connector-j来完成演示。

  • 现实开发中,java访问mysql数据库,已经不直接使用jdbc了。演示原始写法,是为了后面更好地理解Mybatis 等框架。

操作步骤

  • 数据库准备:数据库d1,表t1。
create table t1(xm nvarchar(10),nl tinyint);
insert into t1 values('zs',18);
insert into t1 values('ls',20);
  • 项目准备:新建spring boot项目,maven,java(jdk25), v4.1.1, jar, Properties。

pom依赖:

<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
</dependency>

spring boot框架自带mysql-connector-j 的版本管理,所以这里不写版本号也是可以的。

  • 主类继承CommandLineRunner接口,直接在run方法中书写程序:
package com.example.demo;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication implements CommandLineRunner {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}

	public void run(String... x)
	{
		String url = "jdbc:mysql://127.0.0.1:3306/d1?useSSL=false&serverTimezone=UTC";
        String user = "root";
        String password = "123456";

        // 所有 JDBC 资源都在 try() 中声明,自动关闭
        try (Connection con = DriverManager.getConnection(url, user, password);
             Statement st = con.createStatement()) {

            // 1. insert
            String insertSql = "insert into t1(xm, nl) values('ww', 19)";
            int insertCount = st.executeUpdate(insertSql);
            System.out.println("插入行数:" + insertCount);

            // 2. select 第一次
            String selectSql = "select xm, nl from t1";
            try (ResultSet rs = st.executeQuery(selectSql)) {
                showResultSet(rs);
            }

            // 3. delete
            String deleteSql = "delete from t1 where xm = 'ww'";
            int deleteCount = st.executeUpdate(deleteSql);
            System.out.println("删除行数:" + deleteCount);

            // 4. select 第二次
            try (ResultSet rs = st.executeQuery(selectSql)) {
                showResultSet(rs);
            }

        } catch (SQLException e) {
            System.err.println("SQL 异常");
        }
    }

    private static void showResultSet(ResultSet rs) throws SQLException {
        ResultSetMetaData rsmd = rs.getMetaData();
        int columnCount = rsmd.getColumnCount();

        while (rs.next()) {
            for (int i = 1; i <= columnCount; i++) {
                System.out.print(rsmd.getColumnName(i) + "=");
                System.out.print(rs.getString(i) + "\t");
            }
            System.out.println();
        }
    }
}
  • 运行结果:
插入行数:1
xm=zs   nl=18
xm=ls   nl=20
xm=ww   nl=19
删除行数:1
xm=zs   nl=18
xm=ls   nl=20
posted on 2026-10-13 20:32  万金流  阅读(38)  评论(0)    收藏  举报