• 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();
       }
    }
    
  • 相关阅读:
    IG GROUP开源RESTdoclet项目
    Visual Studio 2012 Update 1抢先看
    使用 Windows Azure 移动服务将云添加到您的应用
    WMF 3.0 RTM(包含PowerShell 3.0 )业已发布
    Node.js 0.9.2 发布(非稳定版)
    vsftpd 3.0.1 正式版发布
    Piggydb 6.2 发布,个人知识库管理
    Apache Commons Codec 1.7 发布
    Notepad++ 6.1.8 正式版发布
    gWaei 3.6.0 发布,英日词典
  • 原文地址:https://www.cnblogs.com/HW-CJY/p/13751678.html
Copyright © 2020-2023  润新知