JDBC快速入门
1. 概念:
Java DataBase Connectivity Java 数据库连接, Java语言操作数据库
* JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。
2. 快速入门:
* 步骤:
1. 导入驱动jar包 mysql-connector-java-5.1.37-bin.jar
1.复制mysql-connector-java-5.1.37-bin.jar到项目的libs目录下
2.右键-->Add As Library
2. 注册驱动
3. 获取数据库连接对象 Connection
4. 定义sql
5. 获取执行sql语句的对象 Statement
6. 执行sql,接受返回结果
7. 处理结果
8. 释放资源
3.各个对象
- DriverManager:驱动管理对象
- Connection:数据库连接对象
- Statement:执行sql的对象
- ResultSet:结果集对象,封装查询结果
- PreparedStatement:执行sql的对象
4.代码实现
JDBC增加数据
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class demo02 {
public static void main(String[] args) {
Statement stat = null;
Connection conn = null;
try {
// 注册驱动
Class.forName("com.mysql.cj.jdbc.Driver"); // 在这发生异常
// 获取连接对象 conn = DriverManager.getConnection("父:子://本机地址/库名?时区","数据库账号","数据库密码")
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day1?serverTimezone=UTC", "root", "root");
// 定义SQL语句
String sql = "INSERT INTO customer VALUES(null,'小明','456465486','110000',4,5500,null)";
// 获取执行SQL语句的对象
stat = conn.createStatement();
// 执行 并 获取返回值
int count = stat.executeUpdate(sql);
System.out.println(count);
} catch (SQLException | ClassNotFoundException throwables) {
throwables.printStackTrace();
} finally {
if (stat != null){
try {
stat.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if (conn != null){
try {
stat.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
}
}
查询数据
import java.sql.*;
public class demo03_select {
public static void main(String[] args) {
Connection conn = null;
Statement stat = null;
ResultSet resultSet = null;
try {
// 注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 获取连接对象
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day1?serverTimezone=UTC", "root", "root");
// 获取执行SQL语句的对象
stat = conn.createStatement();
// 定义SQL语句
String sql = "SELECT * FROM customer";
// 执行 并 获取返回值
resultSet = stat.executeQuery(sql);
while (resultSet.next()){
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
double salary = resultSet.getDouble("salary");
System.out.println("id--" + id + "--name--" + name + "--salary--" + salary);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException throwables) {
throwables.printStackTrace();
} finally {
if (resultSet != null){
try {
resultSet.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if (stat != null) {
try {
stat.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if (conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}

浙公网安备 33010602011771号