C/C++教程

【JDBC】API详解

本文主要是介绍【JDBC】API详解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

DriverManager 作用

作用就以下两个:

  1. 注册驱动
  2. 获取数据库连接

注册驱动

Class.forName("com.mysql.cj.jdbc.Driver");

Driver 类源码如下,其中有一个静态代码块,真正的注册驱动是由DriverManager.registerDriver(new Driver());语句执行,该静态代码块可以随着Driver类的加载自动执行。

public class Driver extends NonRegisteringDriver implements java.sql.Driver {
    public Driver() throws SQLException {
    }

    static {
        try {
            DriverManager.registerDriver(new Driver());
        } catch (SQLException var1) {
            throw new RuntimeException("Can't register driver!");
        }
    }
}

注:mysql5之后的jar包可以不用写Class.forName();方法来注册驱动,可以省略,它会自动加载jar包中META-INF/services/java.sql.Driver文件中的驱动类

获取连接

static Connection getConnection(String url,String user,String password);

参数

  1. url:连接路径,有固定语法
  • 语法:jdbc:mysql://ip地址(域名):端口号/数据库名称?参数键值对1&参数键值对2...
  • 举例:jdbc:mysql://localhost:3306/db1
  • 细节:
    如果连接的是本机的mysql服务器,ip地址可以写:127.0.0.1,或者写域名为localhost,如果同时mysql的端口号为默认的3306,那么url可以简写为:jdbc:mysql:///数据库名称?参数键值对
    配置useSSL=false参数,禁用安全连接方式(就是可能会出现提示说建议采用SSL方式的连接,但是由于没有遇到就不写了),解决警告提示
  1. user:用户名
  2. password:密码

Connection

作用:

  1. 获取执行SQL的对象
  2. 管理事务

获取执行SQL对象

  • 普通执行SQL对象
Statement createStatement()
  • 预编译SQL的执行SQL对象,防止SQL注入
PreparedStatement prepareStatement(sql)
  • 执行存储过程的对象
CallableStatement prepareCall(sql)

事务管理

  • MySQL事务管理
    开启事务:BEGIN;/START TRANSACTION;
    提交事务:COMMIT;
    回滚事务:ROLLBACK
这篇关于【JDBC】API详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!