我们一直利用第三方的客户端类似Navicat或者自带的命令行进行对数据库的访问和修改,而数据库的使用远不止如此,我们可以在JAVA程序中对数据库进行操作,Java Database Connectivity :JDBC (java 数据库连接)就是JAVA语言来执行SQL语句的API。
JDBC
由来
数据库的种类多种多样,我们不可能通过编写JAVA程序来完成对所有数据库的解析和增删改查操作,在JAVA语言开发初期,SUN公司为了让JAVA程序员能够进行对各种数据库的连接和使用进行过研发,但是因为数据库的更新和各个版本的兼容性,并没有开发出来一个通用的类似转接器的能够连接JAVA程序和各种数据库的中间间技术,但是后来SUN公司定义了一个接口,具体的实现类由各大厂商自己来实现,而这个具体的实现类就充当了专属各个厂商与JAVA程序之间连接的驱动,JAVA程序员只要会使用接口里的方法,就可以进行连接和使用各种的数据库。而这个连接的过程,就是JDBC java数据库连接。
优点
- 程序员只要会使用接口中的方法就可以了,学习和操作比较简单。
- 使用同一套JAVA代码进行少量修改就可以访问JDBC支持的数据库。
JDBC会用到的包
- java.sql:JDBC访问数据库的基础包
- javax.sql: JDBC访问数据库的扩展包
- 数据库的驱动,各大数据库厂商来实现。如:MySQL的驱动:com.mysql.jdbc.Driver
JDBC四个核心对象
这几个类都是在java.sql包中
- DriverManager: 用于注册驱动
- Connection: 表示与数据库创建的连接
- Statement: 执行SQL语句的对象
- ResultSet: 结果集
获取连接
(1)添加jar包
这个jar包就是我们上面说的驱动,这里我们添加mysql的驱动
(2)都在注释里了。
import java.sql.Connection;
import java.sql.DriverManager;
public class JdbcCollect {
public static void main(String[] args) {
try {
/*
* 1.加载驱动
* Class类调用静态方法forname本里应该是返回一个Class类的对象,但是这里不用
* 里面传入的驱动已经包含了创建对象的语句,所以这里只要加载驱动就行了
* 这个驱动是在导入的jar包中,可以打开jar包查看
* */
Class.forName("com.mysql.jdbc.Driver");
/*
* 2.获取连接
* 这里就是固定的调用DriverManager中的静态方法getConnection
* 里面的参数分为三部分,第一部分,url说明数据库的地址,第二部分是用户名,第三部分密码
* 协议:主协议://主机:端口/数据库
* 第一部分url:里面的冒号可以联想到计算机网络中的协议,这里也是一种协议
* jdbc协议:MySQL协议://IP地址,如果只访问本机数据库也可以不写,也可以想下面写的那样
* :端口号,3306一般为操作系统为数据库留的端口号,后面的接上要访问的数据库
* 如果出现乱码的话可以在数据库后面加上:?useUnicode=true&characterEncoding=utf8
* */
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbjdbc","root","yht");
System.out.println(conn);
//因为可能有加载不到驱动和找不到数据库的可能,所以这里需要捕获异常
} catch (Exception e) {
e.printStackTrace();
}
}
}
到这里我们就算是和数据库连接上了,如果成功,会返回一个conn对象的地址。如果不成功则会报错。