JDBC概念理解
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
说白了就是我们的数据库本身其实是一个独立程序。比如mysql、oracle等。通常就算没有java、没有php等程序,这些数据库本身就可以提供给任何人去使用。但是如果需要在java程序里面去使用,那是不能直接使用的。如果需要在java程序里面使用,则需要一个叫jdbc的东西。通过这个东西去连接到数据库上面进行操作。
另外为了统一,具体sun公司只是定义了一套规范接口,具体去调用这个数据库则交给其他厂商来实现。
简单地说,JDBC 可做三件事:与数据库建立连接、发送操作数据库的语句并处理结果。
Connection con = DriverManager.getConnection("jdbc:odbc:wombat","账号","密码");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
while (rs.next()) {
int x = rs.getInt("a");
String s = rs.getString("b");
float f = rs.getFloat("c");
}Code language: JavaScript (javascript)
上面的代码包含了数据库连接、发送执行sql命令、获取执行结果的数据。
JDBC结构
最上方的是java应用。不同的数据库有不同的JDBC驱动,所以应该先下载对应的驱动包。
- JDBC API: 提供了应用程序对JDBC的管理连接。
- JDBC Driver API: 支持JDBC管理到驱动器连接。
- JDBC API的使用驱动程序管理器和数据库特定的驱动程序提供透明的连接到异构数据库。
- JDBC驱动程序管理器可确保正确的驱动程序来访问每个数据源。该驱动程序管理器能够支持连接到多个异构数据库的多个并发的驱动程序。
其中平常操作数据库最多的是JDBC API这一层,它提供很多组件类来操作数据库。
JDBC API主要接口和类
- DriverManager: 这个类管理数据库驱动程序的列表。确定内容是否符合从Java应用程序使用的通信子协议正确的数据库驱动程序的连接请求。识别JDBC在一定子协议的第一个驱动器将被用来建立数据库连接。
- Driver: 此接口处理与数据库服务器通信。很少直接直接使用驱动程序对象,一般使用DriverManager中的对象,它用于管理此类型的对象。它也抽象与驱动程序对象工作相关的详细信息。
- Connection: 此接口与接触数据库的所有方法。连接对象表示通信上下文,即与数据库中的所有的通信是通过此唯一的连接对象。
- Statement: 可以使用这个接口创建的对象的SQL语句提交到数据库。一些派生的接口接受除执行存储过程的参数。
- ResultSet: 这些对象保存从数据库后,执行使用Statement对象的SQL查询中检索数据。它作为一个迭代器,可以通过移动它来检索下一个数据。
- SQLException: 这个类用于处理发生在数据库应用程序中的任何错误。
通常JDBC主要封装在 java.sql 和 javax.sql 这两个包里面。
驱动包下载
不同的数据库有不同的驱动包,这里使用的是mysql:
http://central.maven.org/maven2/mysql/mysql-connector-java/8.0.12/mysql-connector-java-8.0.12.jar
注意:你提供的链接返回了资源解析服务请求失败的错误。如果下载不了,可以直接到 Maven中央仓库(https://mvnrepository.com/artifact/mysql/mysql-connector-java/8.0.12)搜索 mysql-connector-java 8.0.12 下载,或者到 MySQL 官网(https://dev.mysql.com/downloads/connector/j/)下载对应版本的驱动包。