JDBC
一、JDBC理解
(一)概念
Java Database Connectivity Java连接数据库的技术 独立于数据库系统、通用的存取数据的一组接口(API) 这一组接口在jdk中已经定义好。但是这些接口没有实现代码。具体的实现代码是通过各个数据库厂商自己提供。
(二)本质:
独立于数据库系统、通用的存取数据的一组接口(API)
(三)作用
1.JDBC为连接不同的数据库 提供了统一路径,为开发者屏蔽了细节问题 2.开发者只需要面向这一组API(接口)即可,提高开发效率 3.连接不同的数据库,需要不同的数据库厂商提供不同的驱动即可
没有JDBC 连接数据库
有了JDBC
二、JDBC的快速入门
(一)涉及的API
MySQL 驱动下载:https://dev.mysql.com/downloads/connector/j/
涉及的API(java.sql.* 或 javax.sql.*) 1. DriverManager类 管理不同的驱动 2. Connection 接口 应用和数据库的连接 3. Statement 接口 用于执行sql语句 4. ResultSet 接口 保存查询的结果
(二)使用
整体步骤:
1.注册驱动
2.获取数据库连接
3.创建执行对象
4.执行sql代码
5.释放资源
① 注册驱动(加载驱动) 下载驱动包
② 获取连接对象 url/用户名/密码
③ 创建命令对象
④ 执行sql命令 返回结果 1. int update = statement.executeUpdate(sql); // 执行增 删 改 2. ResultSet rs = statement.executeQuery(sql); // 执行查询
⑤ 处理结果
⑥ 释放资源
完整代码
package com.offcn.test;
import com.mysql.jdbc.Driver;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class TestJdbc {
/**
* 整体步骤:
* 1.注册驱动
* 2.获取数据库连接 数据库连接地址 数据库登录名 数据库登录密码
* 3.创建执行对象
* 4.执行sql代码
* 5.释放资源
* @param args
*/
public static void main(String[] args) throws SQLException {
//add();
//delete();
}
//删除
public static void delete() throws SQLException {
DriverManager.registerDriver(new Driver());
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/day10", "root", "root");
Statement statement = connection.createStatement();
statement.executeUpdate("delete from user where id = 1");
statement.close();
connection.close();
}
//增加
public static void add() throws SQLException {
DriverManager.registerDriver(new Driver());
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/day10", "root", "root");
Statement statement = connection.createStatement();
statement.executeUpdate("insert into user values(null,'张三','123',20,'男')");
statement.close();
connection.close();
}
public static void select() throws SQLException {
DriverManager.registerDriver(new Driver());
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/day10", "root", "root");
Statement statement = connection.createStatement();
//ResultSet resultSet = statement.executeQuery("select * from user where id = 2");
ResultSet resultSet = statement.executeQuery("select * from user");
//解析结果集
while(resultSet.next()){
//提取光标所在上的数据
int id = resultSet.getInt("id");
int age = resultSet.getInt("age");
String name = resultSet.getString("name");
String password = resultSet.getString("password");
String sex = resultSet.getString("sex");
System.out.println(id+" "+age+" "+name+" "+password+" "+sex);
}
//先开后关 后开先关
resultSet.close();
statement.close();
connection.close();
}
}