JDBC六部曲、驱动和细说URL连接

1、JDBC介绍

1.1、JDBC概念:

JDBC(Java Database Connectivity),Java连接数据库的规范(标准)。
使用JDBC连接数据库完成CRUD操作

1.2、JDBC核心思想:

Java中定义了访问数据库的接口,可以为多种关系型数据库提供统一的访问方式。
由各大数据库厂商提供驱动实现类(Driver数据库驱动)

1.3、图解JDBC连接过程

从Java通过JDBC操作DB

1.4、MySQL的JDBC驱动包

下载包地址:https://dev.mysql.com/downloads/connector/j/

  • mysql-connector-java-5.1.X.jar 适用于5.X版本
  • mysql-connector-java-8.0.X.jar 适用于8.X版本
1.5、JDBC API

jdbc常用方法

2、JDBC开发步骤

    1、注册驱动
    	5.0版本:Class.forName("com.mysql.jdbc.Driver");
    	8.0版本:Class.forName("com.mysql.jdbc.cj.Driver");
    2、连接数据库
        Connection conn = DirverManager.getConnection(url,user,password);
    3、获取执行SQL对象
        Statement stat = conn.createStatement();
    4、执行SQL语句
        CUD 增删改:int result = stat.executeUpdate(sql);
        R 查:ResultSet rs = stat.executeQuery(sql); 
    5、处理结果
        CUD 增删改:int result 
        R 查:ResultSet rs
    6、释放资源
        stat.close();
    	conn.close();
2.1、JDBC开发步骤之驱动
    注册驱动: 是为了能够拿到一个与数据库的连接

	而:Class.forName("com.mysql.jdbc.Driver");
// 1、本意为获取类对象导致类加载,就执行了执行静态代码块,注册驱动,
    
    而在DriverManager类中,包含了以下注册的源码,如下
    public static synchronized void registerDriver(java.sql.Driver driver)
    throws SQLException {
    	registerDriver(driver, null);
   }
   
    所以一旦通过 "com.mysql.jdbc.Driver""com.mysql.cj.jdbc.Driver" 
    获取类对象就会拿到驱动
    
// 2、1.8之后自动注册驱动,所以这行代码可以不用写
    而这个	DriverManager.registerDriver(new com.mysql.jdbc.Driver());
    // 1:驱动注册两次,2:耦合性高,依赖驱动类 所以不采用使用此方式

2.2、JDBC获取连接之细说URL

    Connection connection = DriverManager.getConnection(url, user, password);
    
    获取连接,起始这块一点都不难,就是url,细说下URL
    
    看下浏览器上的的URL进行对比记忆:
        网络URL:  https://www.baidu.com/s?ie=UTF-8&wd=百度
        MySQLURL:jdbc:mysql://localhost:3306/数据库名?useSSL=false&serverTimezone=时区
    	
    	MySQLURL:统一资源定位符://网址:端口/连接字符串?useSSL=false&serverTimezone=GMT%2B8
          
          // jdbc:mysql: 协议
          // localhost: 主机名 IP
          // 3306/端口号
          // homework 数据库名
          // ?useSSL=false/true MySQL在高版本需要指明是否进行SSL连接
                 //1.true 需要连接
                 //2.false 不需要连接
          // &serverTimezone=GTM%2B8  时区设置
          // characterEncoding=utf-8 连接语言设置
    
8.0 版本URL参数:?useSSL=false&serverTimezone=时区&useUnicode=true&characterEncoding=utf-8"
5.0 版本:"jdbc:mysql://localhost:3306/homework"
                
    String url = "jdbc:mysql://localhost:3306/homework";
    String user = "root";
    String password = "root";
    Connection connection = DriverManager.getConnection(url, user, password);

2.3、通过JDBC执行 CDU 增删改
//executeUpdate(sql);增删改 CUD 执行DML、DDL语句
public class TestJdbc {
   public static void main(String[] args) throws Exception {
       // 1.加载驱动
       Class.forName("com.mysql.jdbc.Driver");
       
       // 2.获取连接对象
       String url = "jdbc:mysql://localhost:3306/数据库名";
       String user = "数据库用户名";
       String password = "用户对应密码";
       Connection conn = DriverManager.getConnection(url,user,password);
       
       // 3.获取执行SQL的对象
       Statement stat = conn.createStatment();
       
       // 4.执行SQL语句,并接收返回结果 执行CUD 其中一条
       String csql = "insert into 表(列1,列2...) values(值1,值2...)";
       String dsql = "delete from 表 where 条件表达式";
       String usql = "update 表 set 列名 = 值 where 条件表达式";
       
       int result = stat.executeUpdate(csql或dsql或usql);
       
       // 5.处理结果
       if (result >= 0){
           System.out.println("操作语句之后,受影响的行数为:" + result);
       } else {
           System.out.println("操作失败。。。");
       }
       
       // 6.释放资源,倒着释放资源 遵循先开后关
       stat.close();
       conn.close();
   }
}
原文地址:https://www.cnblogs.com/HW-CJY/p/13751678.html