师承康师傅, 学完总结一下

目录

jar包下载方式

 方式一:

 方式二:

 方式三:

五种获取数据库连接的方式:

方式一:

1. 设置jar包为依赖

2. 右键设置模块

3.写代码

方式二:

方式三:

方式四:

方式五:


尚硅谷 康师傅的   JDBC课程

用的是    Eclipse  MySQL5.X 

我这里用 IDEA  MySQL 8.0.X 重新演示一遍

环境:

JDK 8   MySQL 8.0   IDEA

在读这篇文章之前, 建议先看一下这MySQL安装篇, 做两件事

  • (可选) 改时区,   看到评论区说了很多时区的问题 如果有时区报错可以改一下

        更改时区的教程

IDEA中添加Java JSON idea怎么添加jdbc_jdbc

  • JDBC驱动 即下载jar包(见下文)

jar包下载方式

 方式一:

(官方的下载器, jar包随时能更新, 推荐):

https://dev.mysql.com/downloads/windows/installer/8.0.html

 点开

IDEA中添加Java JSON idea怎么添加jdbc_jdbc_02

IDEA中添加Java JSON idea怎么添加jdbc_sql_03

之前的图拿来直接用了

IDEA中添加Java JSON idea怎么添加jdbc_IDEA中添加Java JSON_04


 方式二:

  也推荐,但是下载速度会慢点

  Maven Repository: mysql » mysql-connector-java (mvnrepository.com)

        去maven仓库下载

IDEA中添加Java JSON idea怎么添加jdbc_sql_05

IDEA中添加Java JSON idea怎么添加jdbc_IDEA中添加Java JSON_06


 方式三:

直接用这个连接下载 jar包(缺点: 一般没有最新版的jar包)

https://downloads.mysql.com/archives/c-j/

IDEA中添加Java JSON idea怎么添加jdbc_java_07

五种获取数据库连接的方式:

方式一:

1. 设置jar包为依赖

如果是按我的教程安装的mysql ,jar包在这

IDEA中添加Java JSON idea怎么添加jdbc_java_08

如果是下载的压缩包, 打开即可

IDEA中添加Java JSON idea怎么添加jdbc_intellij-idea_09


新建lib 目录

IDEA中添加Java JSON idea怎么添加jdbc_IDEA中添加Java JSON_10

IDEA中添加Java JSON idea怎么添加jdbc_java_11

直接 ctrl +v 复制到 lib

IDEA中添加Java JSON idea怎么添加jdbc_IDEA中添加Java JSON_12

现在项目是这个样子

IDEA中添加Java JSON idea怎么添加jdbc_IDEA中添加Java JSON_13

2. 右键设置模块

IDEA中添加Java JSON idea怎么添加jdbc_jdbc_14

IDEA中添加Java JSON idea怎么添加jdbc_IDEA中添加Java JSON_15

选择我们复制的 jar包

IDEA中添加Java JSON idea怎么添加jdbc_intellij-idea_16

确定

IDEA中添加Java JSON idea怎么添加jdbc_java_17

3.写代码

创建一个连接类

IDEA中添加Java JSON idea怎么添加jdbc_intellij-idea_18

补全时, 注意导的是这个cj 包下的 Driver 

IDEA中添加Java JSON idea怎么添加jdbc_java_19

不然就会有这个报错 

IDEA中添加Java JSON idea怎么添加jdbc_intellij-idea_20

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);
    }
}

有了连接的对象, 就说明连接成功了 !

IDEA中添加Java JSON idea怎么添加jdbc_intellij-idea_21

方式二:

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