JDBC概述
JDBC(java DataBase Connectivity)java数据库连接
java程序连接数据库(mysql sqlserver oracle...)
不同的数据库实现方式有所不同,那么Java要连接不同的数据库,需要写不同实现细节(很麻烦,对于语言开发者来说不太友好)
怎么来解决Java程序连接不同的数据库问题呢?
Java语言开发者 指定出了一套标准的访问数据库接口
save update delete query
(程序对数据库的操作一般有(新增、修改、删除 dml),查询)
然后由不同的数据库开发商来具体实现
实现Java提供的标准对数据库操作的接口中的方法 save update delete query
然后作为程序开发者,只需要学习标准接口的功能即可
JDBC API:
供程序员调用的接口与类,集成在java.sql包中
DriverManager类作用:管理各种不同的JDBC驱动
Connection 接口 与特定数据库的连接
Statement 接口 执行sql
PreparedStatement接口 执行sql
ResultSet接口 接收查询结果
Java中提供Connection接口 mysql有一个实现类ConnectionImpl(implments)
mysql开发商将连接mysql具体的实现功能封装到mysql-connecttor-java-8.0.16.jar文件中
我们连接mysql时,只需要将此包导入到项目中即可
搭建jdbc
1.导入mysql驱动包(实现了Java 标准接口的实现类)
2.注册驱动
3.建立与mysql的连接通道
4.向mysql发送sql语句
5.接收返回结果
6.关闭连接通道
package javajdbc;
import com.mysql.cj.jdbc.Driver;//连接mysql8的
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class demo1 {
/*
*1.导入mysql驱动包
* 2.注册驱动
* 3.建立与mysql的连接通道
* 4.向mysql发送sql语句
* 5.接收返回结果
* 6.关闭连接通道
* */
public static void main(String[] args) {
//注册驱动
//DriverManager.registerDriver(new Driver());
try {
/*
* 在使用 jdbc 方式连接数据库时,为什么要执行 Class.forName('驱动类名') 方法:
* 将驱动类的 class 文件装载到内存中,并且形成一个描述此驱动类结构的 Class 类实例,
* 并且初始化此驱动类,这样 jvm 就可以使用它了,这就是 Class.forName() 方法的含义。*/
Class.forName("com.mysql.cj.jdbc.Driver");//以Java反射机制来创建此类对象
} catch (ClassNotFoundException e) {
e.printStackTrace();
}