什么是JDBC
- 概念:Java DataBase Connectivity Java 数据库连接, Java语言操作数据库
- JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。
- JDBC规范定义接口,具体的实现由各大数据库厂商来实现。
- JDBC是Java访问数据库的标准规范,真正怎么操作数据库还需要具体的实现类,也就是数据库驱动。每个数据库厂商根据自家数据库的通信格式编写好自己数据库的驱动。所以我们只需要会调用JDBC接口中的方法即可,数据库驱动由数据库厂商提供。
使用步骤
1. 导入驱动jar包
2. 注册驱动
3. 获取数据库连接对象 Connection
4. 定义sql
5. 获取执行sql语句的对象 Statement
6. 执行sql,接受返回结果
7. 处理结果
8. 释放资源
使用JDBC的好处:
- 程序员如果要开发访问数据库的程序,只需要会调用JDBC接口中的方法即可,不用关注类是如何实现的。
- 使用同一套Java代码,进行少量的修改就可以访问其他JDBC支持的数据库
使用JDBC开发使用到的包:
会使用到的包 | 说明 |
java.sql | 所有与JDBC访问数据库相关的接口和类 |
javax.sql | 数据库扩展包,提供数据库额外的功能。如:连接池 |
数据库的驱动 | 由各大数据库厂商提供,需要额外去下载,是对JDBC接口实现的类 |
JDBC的核心API
接口或类 | 作用 |
DriverManager类 | 1.管理和注册数据库驱动 2.得到数据库连接对象 |
Connection接口 | 一个连接对象,可用于创建Statement和PreparedStatement对象 |
Statement接口 | 一个SQL语句对象,用于将SQL语句发送给数据库服务器。 |
PreparedStatemen接口 | 一个SQL语句对象,是Statement的子接口 |
ResultSet接口 | 用于封装数据库查询的结果集,返回给客户端Java程序 |
导入驱动Jar包
加载和注册驱动
加载和注册驱动的方法 | 描述 |
Class.forName(数据库驱动实现类) | 加载和注册数据库驱动,数据库驱动由mysql厂商"com.mysql.jdbc.Driver |
1.驱动注册
Class.forName("com.mysql.jdbc.Driver");
DriverManager类
DriverManager作用:
- 管理和注册驱动
- 创建数据库的连接
类中的方法:
DriverManager类中的静态方法 | 描述 |
ConnectiongetConnection(Stringurl,Stringuser,Stringpassword) | 通过连接字符串,用户名,密码来得到数据库的连接对象 |
ConnectiongetConnection(Stringurl,Propertiesinfo) | 通过连接字符串,属性对象来得到连接对象 |
使用JDBC连接数据库的四个参数:
JDBC连接数据库的四个参数 | 说明 |
用户名 | 登录的用户名 |
密码 | 登录的密码 |
连接字符串URL | 不同的数据库URL是不同的,mysql的写法jdbc:mysql://localhost:3306/数据库[?参数名=参数值] |
驱动类的字符串名 | com.mysql.jdbc.Driver |
连接数据库的URL地址格式:
协议名:子协议://服务器名或IP地址:端口号/数据库名?参数=参数值
MySQL写法:
URL用于标识数据库的位置,程序员通过URL地址告诉JDBC程序连接哪个数据库,URL的写法为:
MySQL中可以简写:
前提:必须是本地服务器,端口号是3306
jdbc:mysql:///数据库名
乱码的处理
如果数据库出现乱码,可以指定参数:?characterEncoding=utf8,表示让数据库以UTF-8编码来处理数据。
jdbc:mysql://localhost:3306/数据库?characterEncoding=utf8