JDBC  简单的使用API

对于jdbc的理解

  1. jdbc 全称是 Java DataBase Connection
  2. jdbc 是java提供的操作数据库的一种语言, 对于操纵关系型数据库的一种规范并没有实现
  3. 我们使用它 他只是一个接口,我们使用的是各个数据库公司对于这个接口的实现类对象 (多态的一种体现)

怎样使用jdbc 在idea中 连接数据库

  1. 下载驱动, 导入驱动 , 添加到 对应的library 库中并注册驱动
  2. 获取连接对象
  3. 获取执行sql语句的对象
  4. 书写对应的sql语句
  5. 处理结果
  6. 关闭资源

    `ArrayList<Student> list = new ArrayList<>();
    //注册驱动
    Class.forName("com.mysql.cj.jdbc.Driver");
    //获取连接
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/" +
            "liang?serverTimezone=UTC", "root", "root");
    //获取sql语句执行对象
    Statement stat = conn.createStatement();
    String sql = "select * from student where id <7";
    //int i = stat.executeUpdate("UPDATE  student set NAME  = liang where id = 5");
    //执行sql语句
    ResultSet resultSet = stat.executeQuery(sql);
    //结果处理
    while (resultSet.next()) {
        int id = resultSet.getInt("id");
        String name = resultSet.getString("name");
        list.add(new Student(name, id));
    }
    //关闭资源
    stat.close();
    conn.close();
    //遍历结果集
    list.stream().forEach(System.out::println);
    

对于jdbc中 各个对象的理解

DriverManager 驱动管理对象

  1. 注册驱动 static void registerDriver(Driver driver) 注册于给定的驱动程序 写代码使用:Class.forName("com.mysql.cj.jdbc.Driver")' 解释:我们使用 反射的机制将Driver这个类加载进内存 ,肯定是在创建对象之前执行了一部分代码。 有可能是静态代码块: static { try { java.sql.DriverManager.registerDriver(new Driver()); } catch (SQLException E) { throw new RuntimeException("Can't register driver!"); } } 果然我们找到这个静态代码块 里面调用了 静态的注册驱动的方法

  2. 获得连接对象 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/" + "liang?serverTimezone=UTC", "root", "root"); 如果说是:连接的是本地的数据库 并且端口号是3306 可以省略 IP和端口号

Connection 数据库连接对象

  1. 获取执行sql对的对象 Statement createStatement() create PrepraedStament()
  2. 管理事务
    1. 开启事务 void setAutoCommit(boolean);
    2. 提交事务 commit()
    3. 回滚事务 rollback()

Statement 执行sql对象

  1. 执行静态sql
  2. execute (String sql)
  3. int executeUpdate();执行的是dml语句(增删改表中数据的语句 insert update delete)和DDL语句 库和表的创建一般是不执行的》》》 返回值是一个 int 影响的行数 可以用来判断sql语句是否执行成功,
  4. ResultSet executeQuery() DQL语句 查询的语句 返回值是一个集合

ResultSet 结果集对象

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐