目标
实现java和数据库交互,包括配置sql环境,java库,简单例子实现
环境配置
主机配置:IntelliJ IDEA, SDK18, Windows11
下载:
Connector/J
系统选择 Platform Independent
MySQL Community 8.0
注意是mysql-installer-community,不是mysql-installer-web-community
MySQLCommunity 下载完成后安装 只需安装server,记住信息,设置数据库账户(本例为<username>, <password>,图片为安装成功后,与安装过程不同)
IDEA配置
MySQL-创建新数据源 实现连接
新建项目后,菜单栏 视图-工具窗口-数据库,新建数据源-驱动程序下载MySQL驱动,记录类名(如图为com.mysql.cj.jdbc.Driver)
数据源,身份验证可填写安装MySQL时的数据库账户,记录URL地址
下方测试连接检查 成功 进入下一步
Connector/J导入至项目库
文件-项目结构-库,添加刚下载的connector/J 解压后的jar文件,确定
实现交互
数据库
跳转至控制台,输入MySQL命令,可参考MySQL教程:MySQL数据库学习宝典(从入门到精通)。
输入如下代码:
CREATE DATABASE test; #创建数据库
USE test; #选择数据库进行操作
CREATE TABLE IF NOT EXISTS students ( #创建表students
id INT NOT NULL PRIMARY KEY ,
name TEXT NOT NULL ,
age INT NOT NULL );
INSERT INTO students VALUES (1,'name1',18); #插入数据
INSERT INTO students VALUES (2,'name2',12);
INSERT INTO students VALUES (3,'name3',22);
运行后看到创建完成
Java类
新建Java类,以下为代码
import java.sql.*;
public class Test {
static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";//驱动类名
static final String DB_URL = "jdbc:mysql://localhost:3306";//数据库URL地址
static final String USERNAME = "username";//数据库用户名
static final String PASSWORD = "password";//数据库密码
public static void main(String[] args){
Connection conn = null;
Statement stat = null;
try {
Class.forName(JDBC_DRIVER);
System.out.println("Connecting...");
conn = DriverManager.getConnection(DB_URL,USERNAME,PASSWORD);
stat = conn.createStatement();
String sql = "SELECT * FROM test.students";//此处为MySQL语句
ResultSet rs = stat.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);
System.out.println("name = " + name);
System.out.println("age = " + age);
}
rs.close();//释放
stat.close();
conn.close();
} catch (Exception e){
e.printStackTrace();
} finally {
try {
if (stat!=null) stat.close();
} catch (SQLException ignored) {
} try {
if (conn!=null) conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
System.out.println("Success!");
}
}
}
输出
Connecting...
id = 1
name = name1
age = 18
id = 2
name = name2
age = 12
id = 3
name = name3
age = 22
Success!