写点什么

对 jdbc 的讲解

作者:楠羽
  • 2022 年 9 月 06 日
    福建
  • 本文字数:1436 字

    阅读完需:约 5 分钟

📦个人主页:楠羽

🏆简介:一个大二的科班出身的,主要研究 Java 后端开发

⏰座右铭:成功之前我们要做应该做的事情,成功之后才能做我们喜欢的事

💕 过客的你,可以给博主留下一个小小的关注吗?这是给博主最大的支持。以后博主会更新大量的优质的作品!!!!

一、JDBC 快速入门

1.jdbc 的概念

  • JDBC(Java DataBase Connectivity,java 数据库连接)是一种用于执行 SQL 语句的 Java API,可以为多种关系型数据库提供统一访问,它是由一组用 Java 语言编写的类和接口组成的。

2.jdbc 的本质

  • 其实就是 java 官方提供的一套规范(接口)。用于帮助开发人员快速实现不同关系型数据库的连接!

3.jdbc 的快速入门程序

  1. 导入 jar 包

  2. 注册驱动


   Class.forName("com.mysql.jdbc.Driver");
复制代码


  1. 获取连接


   Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/db2", "root", "root");
复制代码


  1. 获取执行者对象


   Statement stat = con.createStatement();
复制代码


  1. 执行 sql 语句,并接收返回结果


   String sql = "SELECT * FROM user";   ResultSet rs = stat.executeQuery(sql);
复制代码


  1. 处理结果


   while(rs.next()) {       System.out.println(rs.getInt("id") + "\t" + rs.getString("name"));   }
复制代码


  1. 释放资源


   con.close();   stat.close();   rs.close();
复制代码

二、JDBC 各个功能类详解

1.DriverManager

  • DriverManager:驱动管理对象

  • 注册驱动(告诉程序该使用哪一个数据库驱动)

  • static void registerDriver(Driver driver):注册与给定的驱动程序 DriverManager

  • 写代码使用:Class.forName("com.mysql.jdbc.Driver");

  • 通过查看源码发现:在 com.mysql.jdbc.Driver 类中存在静态代码块


    static {      try {        java.sql.DriverManager.registerDriver(new Driver());      } catch (SQLException E) {        throw new RuntimeException("Can't register driver!");      }    }
复制代码


- 注意:mysql5之后的驱动jar包可以省略注册驱动的步骤。在jar包中,存在一个java.sql.Driver配置文件,文件中指定了com.mysql.jdbc.Driver
复制代码


  • 获取数据库连接(获取到数据库的连接并返回连接对象)

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

  • 返回值:Connection 数据库连接对象

  • 参数

  • url:指定连接的路径。语法:jdbc:mysql://ip 地址(域名):端口号/数据库名称

  • user:用户名

  • password:密码

2.Connection

  • Connection:数据库连接对象

  • 获取执行者对象

  • 获取普通执行者对象:Statement createStatement();

  • 获取预编译执行者对象:PreparedStatement prepareStatement(String sql);

  • 管理事务

  • 开启事务:setAutoCommit(boolean autoCommit); 参数为 false,则开启事务。

  • 提交事务:commit();

  • 回滚事务:rollback();

  • 释放资源

  • 立即将数据库连接对象释放:void close();

3.Statement

  • Statement:执行 sql 语句的对象

  • 执行 DML 语句:int executeUpdate(String sql);

  • 返回值 int:返回影响的行数。

  • 参数 sql:可以执行 insert、update、delete 语句。

  • 执行 DQL 语句:ResultSet executeQuery(String sql);

  • 返回值 ResultSet:封装查询的结果。

  • 参数 sql:可以执行 select 语句。

  • 释放资源

  • 立即将执行者对象释放:void close();

4.ResultSet

  • ResultSet:结果集对象

  • 判断结果集中是否还有数据:boolean next();

  • 有数据返回 true,并将索引向下移动一行

  • 没有数据返回 false

  • 获取结果集中的数据:XXX getXxx("列名");

  • XXX 代表数据类型(要获取某列数据,这一列的数据类型)

  • 例如:String getString("name"); int getInt("age");

  • 释放资源

  • 立即将结果集对象释放:void close();

发布于: 刚刚阅读数: 5
用户头像

楠羽

关注

还未添加个人签名 2022.08.04 加入

还未添加个人简介

评论

发布
暂无评论
对jdbc的讲解_JDBC_楠羽_InfoQ写作社区