JDBC注册驱动及获取连接

在这里插入图片描述


1. JDBC注册驱动

Connection表示Java程序与数据库之间的连接,只有拿到Connection才能操作数

1.1 导入驱动 Jar 包

导入连接 MySQL 所需要的jar包.

1.2 注册驱动

我们Java程序需要通过数据库驱动才能连接到数据库,因此需要注册驱动。
MySQL的驱动的入口类是:com.mysql.jdbc.Driver

1.2.1 API介绍

java.sql.DriverManager 类用于注册驱动。提供如下方法注册驱动

static void registerDriver(Driver driver)DriverManager 注册给定驱动程序。 

说明:

​ 1)执行完上述语句之后,DriverManager 就可以管理 mysql 驱动了。

​ 2)当前的 DriverManager.registerDriver(Driver driver); 方法的参数是 Driver,这是 jdbc 的一个接口,所以我们需要给定实现该接口的实现类。如果我们连接的是 mysql 数据库,那么需要导入 mysql 数据库提供的包,也就是com.mysql.jdbc.Driver; 下的Driver类。如果我们连接的是oracle数据库,那么需要导入oracle数据库提供的包。

1.2.2 使用步骤

1.DriverManager.registerDriver(驱动对象); 传入对应参数即可

1.2.3 案例代码

public class Demo01 {
	public static void main(String[] args) throws Exception {
		// 注册驱动
		DriverManager.registerDriver(new com.mysql.jdbc.Driver());
	}
}

说明:这里的new Driver()的类Driver就是来自mysql数据库。

通过查询 com.mysql.jdbc.Driver 源码,我们发现Driver类“主动”将自己进行注册

public class Driver extends NonRegisteringDriver implements java.sql.Driver {
    static {
        try {
            // 自己自动注册
            java.sql.DriverManager.registerDriver(new Driver());
        } catch (SQLException E) {
            throw new RuntimeException("Can't register driver!");
        }
    }
    public Driver() throws SQLException {
    }
}

注意:使用DriverManager.registerDriver(new com.mysql.jdbc.Driver());,存在以下方面不足: 驱动被注册两次

使用Class.forName("com.mysql.jdbc.Driver");加载驱动,这样驱动只会注册一次


2. 获取连接

2.1 API介绍

java.sql.DriverManager类中有如下方法获取数据库连接

//	连接到给定数据库 URL ,并返回连接。 
static Connection getConnection(String url, String user, String password) 

2.2 参数说明

  1. String url:连接数据库的URL,用于说明连接数据库的位置
  2. String user:数据库的账号
  3. String password:数据库的密码

连接数据库的URL地址格式:协议名:子协议://服务器名或IP地址:端口号/数据库名?参数=参数值

在这里插入图片描述

MySQL写法:jdbc:mysql://localhost:3306/day04_db

如果是本地服务器,端口号是默认的3306,则可以简写:jdbc:mysql:///day04_db

2.3 注意事项

如果数据出现乱码需要加上参数: ?useUnicode=true&characterEncoding=utf8,表示让数据库以UTF8编码来处理数据。
如: jdbc:mysql://localhost:3306/day04_db?useUnicode=true&characterEncoding=utf8

2.4 使用步骤

DriverManager.getConnection(url, user, password); 传入对应参数即可

3.5 案例代码

public class Demo01 {
	public static void main(String[] args) throws Exception {
		Class.forName("com.mysql.jdbc.Driver");
         /*
            1)使用DriverManager类中的静态方法获取和数据库的连接:
                static Connection getConnection(String url, String user, String password)
                    参数:
                        url:表示建立和数据库服务器连接的地址,书写格式几乎是固定的。
                            jdbc:mysql://连接mysql服务器的ip地址:mysql服务器的端口号/连接的数据库名
                            补充:如果连接的数据库软件在本地,那么url可以简写为:jdbc:mysql:///连接的数据库名
                        user:连接mysql服务器的用户名,这里暂时书写root
                        password:接mysql服务器的密码
                    返回值:Connection,属于java.sql 包下的一个接口,表示连接接口,和数据库的连接。

         */
		// 连接到MySQL
		// url: 连接数据库的URL
		// user: 数据库的账号
		// password: 数据库的密码
		Connection conn = DriverManager.getConnection(url, "root", "1234");
		System.out.println(conn);
	}
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值