使用JDBC操作数据库(IDEA编译器)

目录

JDBC的本质

​ JDBC好处

JDBC操作MySQL数据库

1.创建工程导入驱动jar包

2.编写测试代码

​相关问题


JDBC的本质

  • 官方(sun公司) 定义的一套操作所有关系型数据库的规则,即接口
  • 各个数据库厂商去实现这套接口,提供数据库驱动jar包
  • 我们可以使用这套接口(JDBC) 编程,真正执行的代码是驱动jar包中的实现类

JDBC好处

  • 各数据库厂商使用相同的接口,Java代码不需要针对不同数据库分别开发

  • 可随时替换底层数据库, 访问数据库的Java代码基本不变


    JDBC操作MySQL数据库

1.创建工程导入驱动jar包

01

02

03

2.编写测试代码

java 复制代码
package JDBC;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class JDBCDemo {
    public static void main(String[] args) throws Exception {
          //1.注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        //2.获取连接
        String url = "jdbc:mysql://127.0.0.1:3306/db01";
        String username = "root";
        String password = "123456";
        Connection conn = DriverManager.getConnection(url,username,password);
        //3.定义sql
        String sql = "update user set  password = 666666 where id = 1";
        //4.获取执行sql的对象Statement
        Statement stmt = conn.createStatement();
        //5.执行sql
        int count = stmt.executeUpdate(sql);
        //6.处理结果
        System.out.println(count);
        //7.释放资源
        stmt.close();
        conn.close();
    }
}

问题

关于//1.注册驱动 Class.forName("com.mysql.jdbc.Driver"); 为什么可以注册驱动成功?

我们找到如下内容就会发现我们下载的jar包中已经注册了

java 复制代码
// Driver 接口,所有数据库厂商必须实现的接口,表示这是一个驱动类。
public class Driver extends com.mysql.cj.jdbc.Driver {
    public Driver() throws SQLException {
    }

    static {
        System.err.println("Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.");
    }
}

从 JDBC3 开始,可以不用注册驱动而直接使用。Class.forName("com.mysql.jdbc.Driver"); 这句话可以省略。

相关推荐
鱼鳞_2 分钟前
Java学习笔记_Day32(IO流字符集字符流)
java·笔记·学习
Rsun045513 分钟前
17、Java 责任链模式从入门到实战
java·python·责任链模式
GDAL5 分钟前
IntelliJ IDEA 前端开发全面教程
java·ide·intellij-idea
rabbit_pro5 分钟前
IDEA保存SSH会话信息
java·ssh·intellij-idea
Rsun045517 分钟前
12、Java 享元模式从入门到实战
java·开发语言·享元模式
小则又沐风a11 分钟前
深剖string内部结构 手撕string
java·前端·数据库·c++
2401_8326355813 分钟前
Spring Data MongoDB 最佳实践:如何构建高效数据访问层
java·mongodb·spring
亚马逊云开发者14 分钟前
Java 8升级Java 17实战:用AWS Transform Custom自动化迁移Spring Boot项目完整教程
java·自动化·aws
CHANG_THE_WORLD16 分钟前
C 语言的 `fread` 与 C++ 的 `ifstream::read` 区别及设计哲学
java·c语言·c++
han_hanker18 分钟前
springboot / 若依 日志说明
java·spring boot·spring