一、打开idea新建一个项目,然后右键新建module(我起的module名jdbc),一路点下去
二、下载mysql驱动
mac安装mysql驱动:https://blog.csdn.net/weixin_45364220/article/details/123158074
三、加载mysql驱动
1.在idea上点击 File->Project.structure...->Modules->jdbc->右边+JARs..
2.选择刚才下载的mysql驱动的jar文件即可,然后在外部库看到mysql驱动即可,如下图
3.将下载好的mysql文件里的jar文件拷贝到新建的moudle(jdbc)里面,新建一个lib文件夹下面,如下图
4.然后右键新添加到lib下的jar文件,然后点击Add as library确定即可 ,如下成功
四、写一个最简单的连接数据库查询
package com;
import java.sql.*;
public class Demo01 {
public static void main(String[] args) {
try {
// 1.加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 2.创建连接 localhost可以换成127.0.0.1或者其他数据库地址, 3306是默认端口,company是我的数据库
String url = "jdbc:mysql://localhost:3306/company";
String usr = "root";
String pwd = "mm7701327";
Connection con = DriverManager.getConnection(url,usr,pwd);
// 3.创建statement执行sql的对象
Statement statement = con.createStatement();
String sql = "select * from emp";
// 4.返回结果集
ResultSet rs = statement.executeQuery(sql);
while(rs.next()) {
// id,empname,mgr都是我数据库表的字段名
int id = rs.getInt("id");
String empname= rs.getString("empname");
int mgr = rs.getInt("mgr");
int deptno = rs.getInt("deptno");
String address = rs.getString("address");
String salary = rs.getString("salary");
System.out.println(id+" " + empname + " " + mgr + " " + deptno + " " + address + " " + salary);
}
rs.close();
statement.close();
con.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
五、完整的增删改查抽取工具类(上述一二三完成的前提下,驱动导入好)
1.要用到的文件目录
2.对应文件目录看代码吧
db.properties
#本地的配置文件,不懂代码的也可以改,改好连接的数据库即可运行
driverClass=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/company
user=root
pwd=mm7701327
JDBCUtil
// 工具类 JDBCUtil
package util;
import java.sql.*;
import java.util.ResourceBundle;
public class JDBCUtil {
// 一般连接数据库的驱动名,url,user,password不经常改,新建一个配置文件放入就行,一般都放在src根目录下,这样改数据库直接不懂的也可以改配置文件
private static final String driverClass;
private static final String url;
private static final String user;
private static final String pwd;
static {
// 给上面的常量赋值, 读取配置文件db.properties,配置文件必须key=value的方式存
// final修饰的变量只能被赋值一次,之后再也不能修改,static的执行顺序是由上而下执行
ResourceBundle rb = ResourceBundle.getBundle("db");
driverClass = rb.getString("driverClass");
url = rb.getString("url");
user = rb.getString("user");
pwd = rb.getString("pwd");
}
static {
// 加载驱动的时候刚加载类执行一边就行了,不用每次增删改查都要调用一次
try {
Class.forName(driverClass);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
// 抽取共用部分,加载驱动,获取连接对象,关闭资源
public static Connection connection() throws SQLException {
Connection conn = null;
conn = DriverManager.getConnection(url,user,pwd);
return conn;
}
// 关闭资源
public static void close(ResultSet rs, Statement statement,Connection conn) throws SQLException {
if(rs != null) {
rs.close();
}
if(statement != null) {
statement.close();
}
if(conn != null) {
conn.close();
}
}
}
Demo03
// Demo03
package com;
import util.JDBCUtil;
import java.sql.*;
public class Demo03 {
public static void main(String[] args) {
//
// Demo03.add();
// Demo03.delete();
// Demo03.update();
Demo03.select();
}
// 添加
public static int add() {
// 调用JDBCUtil初始化连接和加载
Connection con = null;
Statement statement = null;
int rs = 0;
try {
con = JDBCUtil.connection();
// 创建statement执行sql的对象
statement = con.createStatement();
String sql = "insert into emp(id,empname,deptno,address,salary) values(10009,'路飞',1004,'风车村',15000)";
// 4.返回结果
rs = statement.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
JDBCUtil.close(null,statement,con);
} catch (SQLException e) {
e.printStackTrace();
}
}
return rs;
}
// 删除
public static int delete() { // 调用JDBCUtil初始化连接和加载
Connection con = null;
Statement statement = null;
int rs = 0;
try {
con = JDBCUtil.connection();
// 创建statement执行sql的对象
statement = con.createStatement();
String sql = "delete from emp where id = '10009'";
// 4.返回结果
rs = statement.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}finally {
try {
JDBCUtil.close(null,statement,con);
} catch (SQLException e) {
e.printStackTrace();
}
}
return rs;
}
// 更新
public static int update() {
Connection con = null;
Statement statement = null;
int rs = 0;
try {
con = JDBCUtil.connection();
// 创建statement执行sql的对象
statement = con.createStatement();
String sql = "update emp set empname='里斯',salary=1000 where address = '青岛'";
// 4.返回结果
rs = statement.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}finally {
try {
JDBCUtil.close(null,statement,con);
} catch (SQLException e) {
e.printStackTrace();
}
}
return rs;
}
// 查询
public static void select() {
Connection con = null;
Statement stament = null;
ResultSet rs = null;
try {
// 加载驱动, 连接成功
con = JDBCUtil.connection();
// 创建stament对象执行sql
stament = con.createStatement();
String sql = "select * from emp";
// 接收结果集
rs = stament.executeQuery(sql);
while (rs.next()){
int id = rs.getInt("id");
String empname= rs.getString("empname");
int mgr = rs.getInt("mgr");
int deptno = rs.getInt("deptno");
String address = rs.getString("address");
String salary = rs.getString("salary");
System.out.println(id+" " + empname + " " + mgr + " " + deptno + " " + address + " " + salary);
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
try {
JDBCUtil.close(rs,stament,con);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}