JDBC

JDBC介绍

概念

JDBC(Java DataBase Connectivity, java数据库连接)是一种用于执行SQL的Java API,可以为多种关系型数据库提供统一的访问,他是由一组用Java语言编写的接口组成的。JDBC的本质是Java官方提供的一套规范,用于帮助开发人员快速实现不同数据库的连接。

JDBC使用

1.导入jar包

2.注册驱动

Class.forName("com.mysql.jdbc.Driver");

3.获取连接

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

4.获取执行者对象

Statement stat = con.createStatement();

5.执行sql语句,并接受返回结果

Sting sql = "SELECT * FROM user";

ResultSet rs = stat.executeQuery(sql);

6.处理结果

while(rs.next()){

  System.out.println(rs.getInt("id) + "\t" + rs.getString("name"));

}

7.释放资源

con.close;

stat.close;

rs.close;

JDBC各个功能类详解

DriverManager

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!");
  }
}

通过DriverManager可以获取数据库连接对象

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

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

参数:

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

Connection

Connection:数据库连接对象

获取执行者对象

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

管理事务

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

  • 提交事务:commit();

  • 回滚事务:rollback();

释放资源

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

Statement

Statement:执行sql语句的对象

 

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

  • 返回值int:返回影响的行数
  • 参数sql:可以执行insert、update、delete语句。

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

  • 返回值ResultSet :封装查询的结果。
  • 参数sql:可以执行的select语句。

释放资源

  • 可以将执行者对象释放:void close();

ResultSet

ResultSet:结果集对象

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

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

  • 没有数据返回false

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

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

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

释放资源

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

 

posted @ 2021-06-10 23:35  yyyzz  阅读(97)  评论(0)    收藏  举报