JDBC连接的多种方式(idea)

10 篇文章 42 订阅
4 篇文章 0 订阅

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

目录

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包)

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

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

方式一:

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

  • 35
    点赞
  • 125
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值