前言
-
本文采用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
浙公网安备 33010602011771号