Day 72

_JDBC简介&快速入门

  1. JDBC概念:

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

    • 注册驱动

      • Class.forName("com.mysql.jdbc.Driver");
        
    • 获取连接

      • Connection conn = DriverManager.getConnection(url,username,password);
        
    • 定义SQL语句

      • String sql = "update...";
        
    • 获取执行sql对象

      • stmt.executeUpdate(sql);
        
    • 处理返回结果

    • 释放资源

  2. package com.jdbcstudy;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.Statement;
    
    // JDBC快速入门
    public class JDBC_Demo {
        public static void main(String[] args) {
            // 注册驱动
            try {
                Class.forName("com.mysql.jdbc.Driver");
    
                // 获取连接
                String url ="jdbc:mysql://127.0.0.1:3306/atguigudb";
                String username = "root";
                String password = "abc123";
    
                Connection conn = DriverManager.getConnection(url, username, password);
    
                // 定义sql
                String sql_01 = "update student set age = 123 where name ='小明'";
    
                // 获取执行sql的对象 Statement
                Statement stmt = conn.createStatement();
    
                // 执行sql
                int i = stmt.executeUpdate(sql_01);
    
                // 在控制台输出被影响的行数
                System.out.println(i);
    
                // 释放资源
                stmt.close();
                conn.close();
    
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    }
    ====================================
    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.
    1
    
    Process finished with exit code 0
    

_JDBC详解、API详解-DriverManager

  1. 注册驱动

    • Class.forName("com.mysql.jdbc.Driver");
      
    • 提示:

      • MySQL 5 之后的驱动包可以省略注册驱动的步骤
  2. 获取连接

    • url:连接路径

      • 语法:jdbc:mysql://ip地址(域名):端口号/数据库名称?参数键值对1&参数键值对2...
        示例:jdbc:mqsql://127.0.0.1:3306/atguigudb
        细节:
            配置useSSL=false 参数,禁用安全连接方式,解决警告提示
        
      • user:用户名

      • password:密码

_JDBC-API详解-Connection

  1. 获取执行SQL的对象

    • 普通执行SQL对象
      • Statement createStatement()
    • 预编译SQL的执行SQL对象:防止SQL注入
      • PrepareStatement prepareStatement(sql)
    • 执行存储过程的对象
      • CallableStatement prepareCall(sql)
  2. 事务管理

    • MySQL事务管理

      • 开启事务:BEGIN; / START TRANSACTION;

      • 提交事务:COMMIT;

      • 回滚事务:ROLLBACK;

      • MySQL自动提交事务

    • JDBC 事务管理:Connection 接口中定义了3个对应的方法

      • 开启事务:setAutoCommit(boolean autoCommit):true 为自动提交事务;false为手动提交事务
      • 提交事务:commit;
      • 回滚事务:rollback;
  3. package com.jdbcstudy;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class JDBC_Demo_02 {
        public static void main(String[] args) {
            // 获取mysql连接
            String url ="jdbc:mysql://127.0.0.1:3306/atguigudb";
            String username = "root";
            String password = "abc123";
            Connection conn = null;
            try {
                conn = DriverManager.getConnection(url, username, password);
    
                // 定义sql
                String sql_01 = "update student set age = 43 where id = 1";
    
                // 创建执行sql的对象
                Statement stat = conn.createStatement();
    
                // JDBC事务管理try...catch
                // 开启事务,并设置手动提交事务
                conn.setAutoCommit(false);
    
                // 执行sql语句
                int i = stat.executeUpdate(sql_01);
    
                // 控制台数据执行结果
                if (i > 0) {
                    System.out.println("修改成功");
                } else {
                    System.out.println("修改失败");
                }
    
                // 提交事务
                conn.commit();
    
                // 释放资源
                stat.close();
                conn.close();
            } catch (Exception e) {
                e.printStackTrace();
                // 如果有异常,则回滚事务
                try {
                    conn.rollback();
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            }
        }
    }
    ===================================
    修改成功
    
    Process finished with exit code 0
    

_JDBC-API详解-Satatement

  1. Statement作用:执行sql语句

  2. 执行SQL语句

    • int executeUpdate(sql): 执行DML、DDL语句
          返回值:1.DML语句影响的行数;2.DDL语句执行后,执行成功也可能返回0
      
    • ResultSet executeQuery(sql): 执行DQL语句
          返回值:ResultSet结果集对象
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值