写在前面
**************************************************************************************************************
本文由B站up主“V哥学it”的教程《4小时轻松学会JDBC,连接池以及JdbcTemplate-V哥主讲》整理而来,侵删。
视频网址:https://www.bilibili.com/video/BV1ZK411c75r/
V哥讲的言简意赅,条理清晰,学习JDBC的亲可以去康康呦!
**************************************************************************************************************
一、运行环境
1. java JDK 1.8
2. MySQL 5.7.11
二、数据库建表
1. 新建数据库vgxit_test
2. 新建表user,信息如下:
插入数据:
三、下载JDBC所需要的驱动jar包
下载地址:https://dev.mysql.com/downloads/connector/j/
不会下载的话参考文章https://blog.csdn.net/weixin_39609071/article/details/110866742
四、将jar包导入到项目
1. 创建项目后,创建module,取名为ktdm,(这里的module名是课堂代码的首字母,自己改就行)
2. 在ktdm下,创建文件夹libs,并将jar包粘贴进去
3. 右键libs,改类型,具体操作如下,(我目前不明白为啥这样做,反正跟着做就行辣)
五、创建连接类
1. 在ktdm的src下新建com.vgxit.jdbc包,在此包下新建SimpleSelectTest.java文件,用于连接数据库并进行简单查询
2. 代码
package com.vgxit.jdbc;
import java.sql.*;
/**
* 连接上mysql数据库,并进行数据的简单操作
*/
public class SimpleSelectTest {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.编写数据库的连接地址,标准写法:
String connUrl = "jdbc:mysql://127.0.0.1:3306/vgxit_test?serverTimezone=Asia/Shanghai";
//3.获取数据库连接的用户名和密码
String username = "root";
String password = "123456";
//4.连接到数据库,这个conn就是java和mysql的服务连接
Connection conn = DriverManager.getConnection(connUrl,username,password);
//5.通过连接,获取一个可以执行sql语句的对象
Statement stmt = conn.createStatement();
//6.编写查询语句
String sql = "select * from user";
//7.执行查询语句,获得对应的结果
ResultSet rs = stmt.executeQuery(sql);
//8.遍历查询结果,查看数据,rs可以看做游标
while(rs.next()){//有下一个的情况下
System.out.println(rs.getInt(1) + ":" + rs.getString(2) + "," + rs.getString(3));
}
//9.关闭资源,后创建的,先关闭
rs.close();
stmt.close();
conn.close();
}
}
六、操作结果
可以看到有一行红字,说的是com.mysql.jdbc.Driver这个驱动过时了,强烈不建议用,改成该提示推荐的com.mysql.cj.jdbc.Driver就好了
最终结果
七、升级版
对于上面代码的关闭部分,由于用到的Connection、Statement和ResultSet对象都继承了AutoCloseable,它们都可以用try自动关闭,所以上面的代码可简写为下:
package com.vgxit.jdbc;
import java.sql.*;
public class SimpleSelectTestPro {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1.加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//2.编写数据库连接地址
String connUrl = "jdbc:mysql://127.0.0.1:3306/vgxit_test?serverTimezone=Asia/Shanghai";
//3.获取数据库连接的用户名和密码
String username = "root";
String password = "123456";
//4.编写查询语句
String sql = "select * from user";
try(//使用try自动关闭
//5.创建数据库连接
Connection conn = DriverManager.getConnection(connUrl,username,password);
//6.创建可执行sql语句的对象
Statement stmt = conn.createStatement();
//7.创建查询结果集
ResultSet rs = stmt.executeQuery(sql);
){
//8.遍历结果集,查看数据
while (rs.next()){
System.out.println(rs.getInt(1) + ":" + rs.getString(2) + ":" + rs.getString(3));
}
}
}
}
就是把需要关闭的对象加到了try的()里,{}里正常执行语句