0. 参考文档
- [1] https://blog.csdn.net/PIKapikaaaa/article/details/124113065
- [2] https://blog.csdn.net/qq_36816794/article/details/141621264
JDBC是java访问数据库的基石,JDO, Hibernate等只是更好的封装了JDBC。
1、创建项目
IDEA新建一个空项目或者空module 选中 maven
2、安装 jdbc 驱动
在pom.xml中写入
<dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.18</version></dependency></dependencies>
刷新maven,等待依赖下载完成。
3、编写代码
jdbc访问数据库步骤:
1. 加载 mysql 驱动 2. 获取连接对象 3. 创建命令对象 4. 编写sql命令 5. 执行sql命令 返回结果 6. 处理结果 7. 释放资源
JDBC API是⼀系列的接⼝,它统⼀和规范了应⽤程序与数据库的连接、执⾏SQL语句,并到得到返回结果等各类操作。声明在java.sql与javax.sql包中。
【谐音记忆:jdbc的创始人(DCSR)】
-
DriverManager类 管理不同的驱动
-
Connection 接⼝ 应⽤和数据库的连接
-
Statement 接⼝ ⽤于执⾏sql语句
-
ResultSet 接⼝ 保存查询的结果
如要访问的数据库是navicat,数据库名字是yssh,表名字是 jdbc_user
先设置参数如下:
// 0. 设置参数 String url = "jdbc:mysql://localhost:3306/yssh?serverTimezone=GMT%2B8"; String user = "root"; String password = "1234";// 1. 加载 mysql 驱动 Class.forName("com.mysql.cj.jdbc.Driver");// 反射 System.out.println("加载 mysql驱动成功"); // 2. 获取连接对象 Connection connection = DriverManager.getConnection(url, user, password); System.out.println("获取连接对象成功"); // 3. 创建命令对象 Statement statement = connection.createStatement(); // 4. 编写sql命令 String sql = "select * from jdbc_user"; // 5. 执行sql命令 返回结果 if (connection == null) {System.out.println("判断连接对象:连接失败");return; } System.out.println("判断连接对象:连接成功"); ResultSet resultSet = statement.executeQuery(sql); // 6. 处理返回的结果 while (resultSet.next()){// ResultSet游标最初定位在第一行之前;对next方法的第一次调用使第一行成为当前行;第二次调用使第二行成为当前行,依此类推。Object id = resultSet.getObject(1);Object name = resultSet.getString(2);Object age = resultSet.getInt(3);Object grade = resultSet.getString(4);System.out.println("\33[0m" + id + " " + name + " " + age + " " + grade); } // 7. 关闭资源 resultSet.close(); statement.close(); connection.close();
点击运行,查询结果如下:
public static void main(String[] args) throws ClassNotFoundException, SQLException {// 0. 设置参数String url = "jdbc:mysql://localhost:3306/yssh?serverTimezone=GMT%2B8";String user = "root";String password = "1234";// 1. 加载 mysql 驱动Class.forName("com.mysql.cj.jdbc.Driver");// 反射System.out.println("加载 mysql 驱动成功");// 2. 获取连接对象Connection connection = DriverManager.getConnection(url, user, password);System.out.println("获取连接对象成功");// 3. 创建命令对象Statement statement = connection.createStatement();insertUser(statement);queryUser(statement);// 7. 关闭资源 statement.close();connection.close(); }
public static void insertUser(Statement statement) throws SQLException {// 4. 编写sql命令String sql = "INSERT INTO `jdbc_user` ( `name`, `age`, `grade`) VALUES ( 'eva', '66', '68');";// 5. 执行sql命令 返回结果 statement.executeUpdate(sql); }
运行结果如下:
public static void updateUser(Statement statement) throws SQLException {// 4. 编写sql命令String sql = "UPDATE `jdbc_user` SET `age`='66', `grade`='66' WHERE (`name`='EVA');";// 5. 执行sql命令 返回结果 statement.executeUpdate(sql); }
然后在main中调用,运行结果如下:
public static void delUser(Statement statement) throws SQLException {// 4. 编写sql命令String sql = "DELETE FROM `jdbc_user` WHERE (`id`='7');";// 5. 执行sql命令 返回结果 statement.executeUpdate(sql); }
然后在main中调用,运行结果如下:
package com.example;import java.sql.*;/*** jdbc访问数据库步骤:* // 1. 注册驱动(加载驱动)* // 2. 获取连接对象* // 3. 创建命令对象* // 4. 编写sql命令* // 5. 执行sql命令 返回结果* // 6. 处理结果* // 7. 释放资源*/ public class Main {public static void main(String[] args) throws ClassNotFoundException, SQLException {// 0. 设置参数String url = "jdbc:mysql://localhost:3306/yssh?serverTimezone=GMT%2B8";String user = "root";String password = "1234";// 1. 加载 mysql 驱动Class.forName("com.mysql.cj.jdbc.Driver");// 反射System.out.println("加载 mysql 驱动成功");// 2. 获取连接对象Connection connection = DriverManager.getConnection(url, user, password);System.out.println("获取连接对象成功");// 3. 创建命令对象Statement statement = connection.createStatement();// insertUser(statement);// updateUser(statement); delUser(statement);queryUser(statement);// 7. 关闭资源 statement.close();connection.close();}public static void queryUser(Statement statement) throws SQLException {// 4. 编写sql命令String sql = "select * from jdbc_user";// 5. 执行sql命令 返回结果ResultSet resultSet = statement.executeQuery(sql);// 6. 处理返回的结果while (resultSet.next()) {Object id = resultSet.getObject(1);Object name = resultSet.getString(2);Object age = resultSet.getInt(3);Object grade = resultSet.getString(4);System.out.println(" " + id + " " + name + " " + age + " " + grade);}// 7. 关闭资源 resultSet.close();}public static void insertUser(Statement statement) throws SQLException {// 4. 编写sql命令String sql = "INSERT INTO `jdbc_user` ( `name`, `age`, `grade`) VALUES ( 'eva', '66', '68');";// 5. 执行sql命令 返回结果 statement.executeUpdate(sql);}public static void updateUser(Statement statement) throws SQLException {// 4. 编写sql命令String sql = "UPDATE `jdbc_user` SET `age`='66', `grade`='66' WHERE (`name`='EVA');";// 5. 执行sql命令 返回结果 statement.executeUpdate(sql);}public static void delUser(Statement statement) throws SQLException {// 4. 编写sql命令String sql = "DELETE FROM `jdbc_user` WHERE (`id`='7');";// 5. 执行sql命令 返回结果 statement.executeUpdate(sql);} }