JDBC注册驱动及获取连接
文章目录
- 1. JDBC注册驱动
- 1.1 导入驱动 Jar 包
- 1.2 注册驱动
- 1.2.1 API介绍
- 1.2.2 使用步骤
- 1.2.3 案例代码
- 2. 获取连接
- 2.1 API介绍
- 2.2 参数说明
- 2.3 注意事项
- 2.4 使用步骤
- 3.5 案例代码
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 参数说明
String url
:连接数据库的URL,用于说明连接数据库的位置String user
:数据库的账号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服务器的用户名,这里暂时书写rootpassword:接mysql服务器的密码返回值:Connection,属于java.sql 包下的一个接口,表示连接接口,和数据库的连接。*/// 连接到MySQL// url: 连接数据库的URL// user: 数据库的账号// password: 数据库的密码Connection conn = DriverManager.getConnection(url, "root", "1234");System.out.println(conn);}
}