Bootstrap

JDBC(后端于数据库的连接)

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();
        }
    
;