前言:
本文主要是作者在学习JDBC时的学习总结,基于教材(Java 基础入门第三版)的介绍作出的总结,总结出来让自己更好的熟悉和养成写博客的好习惯,如有侵权,请联系作者删除,谢谢😊😘🙌
JDBC介绍
JDBC – Java数据库连接(Java Database Connectivity) ,他是一套用于执行SQL语句的Java API
JDBC 是在应用程序与数据库之间起到了桥梁的作用
JDBC 的核心功能就是为开发人员提供操作数据库的Java API类库,JDBC的API主要位于java.sql包里
1. 搭建数据库环境
首先得在本机安装好数据库【本文不做过多阐述】,本案例用的是命令行操作实现,具体步骤如下:
先是打开mysql mysql -u root -p
,输入数据库密码,成功进入;
然后,create database jdbc;
创建一个叫做jdbc
的数据库;
然后,use jdbc;
使用jdbc
数据库;
接着,创建users
表
mysql> create table users(
-> id int primary key auto_increment,
-> name varchar(40),
-> password varchar(40),
-> email varchar(60),
-> birthday date);
然后,插入数据
mysql> insert into users(name,password,email,birthday) values('zhangs','123456','zs@sina.com','1980-12-04'),
-> ('lisi','123456','lisi@sina.com','1981-12-04'),
-> ('wangwu','123456','wangwu@sina.com','1979-12-04');
然后,查询数据
mysql> select *from users;
结果展示:这样就成功啦~~
2. 创建项目环境,导入数据库驱动程序
可创建如图所示的项目结构
从官方网站下载mysql-connector-java-8.0.30.jar
包,放入lib
目录下,并添加到IEDA
的依赖项中,步骤如下:
选择 FILE-Project Structure-Modules-Dependencies-选择“+”-选择第一个-添加下载好的jar
包,再Apply
, OK
,即可。
3. 编写JDBC
程序
主要步骤(6步)
1. 注册数据库的驱动程序
2. 通过 DriverManager 获取数据库连接
3. 通过 Connection 对象获取 Statement 对象
4. 使用 Statement 执行 SQL 语句
5. 操作结果集
6. 回收数据库资源
😊1. 注册数据库的驱动程序
法一:DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
【会注册俩次】
法二:Class.forName("com.mysql.cj.jdbc.Driver");
【一次】【常用法二】
😊2. 通过 DriverManager 获取数据库连接
String url = "jdbc:mysql://localhost:3306/jdbc";
// "? serverTimezone=GMT%2B8&useSSL=false";-- 时区 + SSL【防止报错】
// serverTimezone=GMT%2B8 -- 北京时间
// 数据库用户名
String usename = "root" ;
// 数据库密码
String password = "****" ;
Connection conn = DriverManager.getConnection(url,usename,password);
😊 3. 通过 Connection 对象获取 Statement 对象
Statement stmt = conn.createStatement();
😊 4. 使用 Statement 执行 SQL 语句
String sql = "select * from users"; // 不可以插入多条语句
ResultSet rs = stmt.executeQuery(sql);
😊5. 操作结果集
System.out.println("id | name | password |"
+" email | birthday");
while(rs.next()){
int id = rs.getInt("id");
String name = rs.getString("name");
String psw = rs.getString("password");
String email = rs.getString("email");
Date birthday = rs.getDate("birthday");
System.out.println(id + " | " + name +
" | " + psw + " | " + email +
" | " + birthday);
}
re.next();
一条条读取数据
6. 回收数据库资源
-
为了保证资源被释放,释放资源库的操作应放在
finally
代码块中 -
回收顺序:
rs-stmt-conn
与创建顺序相反 -
回收
rs
,其他也是类似-
if (rs != null) { try { rs.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } rs = null; }
-
示例代码
Example01.java
package com.itheima.jdbc.example;
import java.sql.*;
public class Example01 {
public static void main(String[] args) {
Statement stmt = null;
ResultSet rs = null;
Connection conn = null;
try{
// 1. 注册数据库的驱动程序
//法一: DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
Class.forName("com.mysql.cj.jdbc.Driver");
// 2. 通过 DriverManager 获取数据库连接
String url = "jdbc:mysql://localhost:3306/jdbc";
// "? serverTimezone=GMT%2B8&useSSL=false"; -- 时区 + SSL
// 数据库用户名
String usename = "root" ;
// 数据库密码
String password = "****" ;
conn = DriverManager.getConnection(url,usename,password);
// 3. 通过 Connection 对象获取 Statement 对象
stmt = conn.createStatement();
// 4. 使用 Statement 执行 SQL 语句
// String sql2 = " insert into users(name,password,email,birthday) value ('chenwanjun','123456','cwj@qq.com','2003-06-12');";
// int i = stmt.executeUpdate(sql2);
// System.out.println(i);
String sql = "select * from users";
rs = stmt.executeQuery(sql);
// 5. 操作结果集
System.out.println("id | name | password |"
+" email | birthday");
while(rs.next()){
int id = rs.getInt("id");
String name = rs.getString("name");
String psw = rs.getString("password");
String email = rs.getString("email");
Date birthday = rs.getDate("birthday");
System.out.println(id + " | " + name +
" | " + psw + " | " + email +
" | " + birthday);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
// 6. 回收数据库资源
if (rs != null) {
try {
rs.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
rs = null;
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
stmt = null;
}
if (conn != null) {
try {
conn.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
conn = null;
}
}
}
}
运行,结果如下就成功啦~~
到此,读者对JDBC
就有基础的了解啦,能够独立编写JDBC
程序就OK啦~~作者未对JDBC
的常用API
做详细的介绍,读者可以自己再好好深入一下😉😉😉