师承康师傅, 学完总结一下
目录
jar包下载方式
方式一:
方式二:
方式三:
五种获取数据库连接的方式:
方式一:
1. 设置jar包为依赖
2. 右键设置模块
3.写代码
方式二:
方式三:
方式四:
方式五:
尚硅谷 康师傅的 JDBC课程
用的是 Eclipse MySQL5.X
我这里用 IDEA MySQL 8.0.X 重新演示一遍
环境:
JDK 8 MySQL 8.0 IDEA
在读这篇文章之前, 建议先看一下这MySQL安装篇, 做两件事
- (可选) 改时区, 看到评论区说了很多时区的问题 如果有时区报错可以改一下
- JDBC驱动 即下载jar包(见下文)
jar包下载方式
方式一:
(官方的下载器, jar包随时能更新, 推荐):
https://dev.mysql.com/downloads/windows/installer/8.0.html
点开
之前的图拿来直接用了
方式二:
也推荐,但是下载速度会慢点
Maven Repository: mysql » mysql-connector-java (mvnrepository.com)
去maven仓库下载
方式三:
直接用这个连接下载 jar包(缺点: 一般没有最新版的jar包)
五种获取数据库连接的方式:
方式一:
1. 设置jar包为依赖
如果是按我的教程安装的mysql ,jar包在这
如果是下载的压缩包, 打开即可
新建lib 目录
直接 ctrl +v 复制到 lib
现在项目是这个样子
2. 右键设置模块
选择我们复制的 jar包
确定
3.写代码
创建一个连接类
补全时, 注意导的是这个cj 包下的 Driver
不然就会有这个报错
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
翻译:
正在加载`com.mysql.jdbc.Driver'类。这已被废弃。新的驱动类是`com.mysql.cj.jdbc.Driver'。驱动程序通过SPI自动注册,手动加载驱动程序类通常是不必要的。
import com.mysql.cj.jdbc.Driver;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
/**
* @author mobeiCanyue
* Create 2022-01-26 22:17
* Describe:
*/
public class ConnectionTest {
public static void main(String[] args) throws SQLException {
Driver driver = new Driver();
// url:http://localhost:8080/gmall/keyboard.jpg
// jdbc:mysql:协议
// localhost:ip地址
// 3306:默认mysql的端口号
// mysql:mysql的存储mysql本身一些信息的数据库
String url = "jdbc:mysql://localhost:3306/mysql";
// 将用户名和密码封装在Properties中
Properties info = new Properties();
info.setProperty("user", "root");
info.setProperty("password", "admin");//admin改成你自己的密码
Connection connect = driver.connect(url, info);
System.out.println(connect);
}
}
有了连接的对象, 就说明连接成功了 !
方式二:
import java.sql.Connection;
import java.sql.Driver;
import java.util.Properties;
/**
* @author mobeiCanyue
* Create 2022-01-26 23:50
* Describe:
* 方式二:对方式一的迭代:在如下的程序中不出现第三方的api,使得程序具有更好的可移植性
*/
public class ConnectionTest2 {
public static void main(String[] args) throws Exception {
// 1.获取Driver实现类对象:使用反射
Class<?> clazz = Class.forName("com.mysql.cj.jdbc.Driver");
Driver driver = (Driver) clazz.newInstance();
// 2.提供要连接的数据库
String url = "jdbc:mysql://localhost:3306/mysql";
// 3.提供连接需要的用户名和密码
Properties info = new Properties();
info.setProperty("user", "root");
info.setProperty("password", "admin");//admin改成你自己的密码
// 4.获取连接
Connection connect = driver.connect(url, info);
System.out.println(connect);
}
}
方式三:
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
/**
* @author mobeiCanyue
* Create 2022-01-27 0:03
* Describe:方式三:使用DriverManager替换Driver
*/
public class ConnectionTest3 {
public static void main(String[] args) throws Exception {
// 1.提供三个连接的基本信息:
String url = "jdbc:mysql://localhost:3306/mysql";
String user = "root";
String password = "admin";
// 2.获取Driver实现类的对象
Class<?> clazz = Class.forName("com.mysql.cj.jdbc.Driver");
Driver driver = (Driver) clazz.newInstance();
// 3.注册驱动
DriverManager.registerDriver(driver);
// 4.获取链接
Connection connection = DriverManager.getConnection(url, user, password);
System.out.println(connection);
}
}
方式四:
import java.sql.Connection;
import java.sql.DriverManager;
/**
* @author mobeiCanyue
* Create 2022-01-27 0:14
* Describe:可以只是加载驱动,不用显示的注册驱动了。
*/
public class ConnectionTest4 {
public static void main(String[] args) throws Exception {
// 1.提供三个连接的基本信息:
String url = "jdbc:mysql://localhost:3306/mysql";
String user = "root";
String password = "admin";
// 2.加载Driver
Class.forName("com.mysql.cj.jdbc.Driver");
//相较于方式三,可以省略如下的操作:
// Driver driver = (Driver) clazz.newInstance();
// // 注册驱动
// DriverManager.registerDriver(driver);
//为什么可以省略上述操作呢?
/*
* 在mysql的Driver实现类中,声明了如下的操作:
* static {
try {
java.sql.DriverManager.registerDriver(new Driver());
} catch (SQLException E) {
throw new RuntimeException("Can't register driver!");
}
}
*/
// 3.获取连接
Connection conn = DriverManager.getConnection(url, user, password);
System.out.println(conn);
}
}
方式五:
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;
/**
* @author mobeiCanyue
* Create 2022-01-27 0:28
* Describe:
*/
public class ConnectionTest5 {
public static void main(String[] args) throws Exception {
//1.读取配置文件中的4个基本信息
InputStream is = ConnectionTest5.class.getClassLoader().getResourceAsStream("jdbc.properties");
Properties pros = new Properties();
pros.load(is);
String user = pros.getProperty("user");
String password = pros.getProperty("password");
String url = pros.getProperty("url");
String driverClass = pros.getProperty("driverClass");
//2.加载驱动
Class.forName(driverClass);
//3.获取连接
Connection connection = DriverManager.getConnection(url, user, password);
System.out.println(connection);
}
}
jdbc.properties:
user=root
password=admin
url=jdbc:mysql://localhost:3306/mysql
driverClass=com.mysql.cj.jdbc.Driver