目录
1.JDBC概念
2.JDBC核心接口与类
3. 创建JDBC应用程序的步骤
4.使用JDBC执行insert、delte、update和select操作
1.JDBC概念
JDBC(Java Database Connectivity,简称JDBC)一般指Java数据库连接,Java数据库连接
2.JDBC核心接口与类
(1)类
DriverManager:负责管理JDBC驱动程序。使用JDBC驱动程序之前,必须先将驱动程序加载并注册后才可以使用,同时提供方法来建立与数据库的连接。 SQLException:有关数据库操作的异常
(2)接口
Connection:特定数据库的连接(会话)。在连接上下文中执行SQL语句并返回结果。PreparedStatement:表示预编译的 SQL 语句的对象。Statement:用于执行静态 SQL 语句并返回它所生成结果的对象。ResultSet :表示数据库结果集的数据表,通常通过执行查询数据库的语句生成 。CallableStatement :用于执行 SQL 存储过程的接口 。
3. 创建JDBC应用程序的步骤
载入JDBC驱动程序建立连接创建Statement对象执行查询或更新结果处理关闭连接
例子:
①首先导入所需的jar包
②具体代码
Ⅰ.存在表user
CREATE TABLE `user` ( `id` int NOT NULL, `name` varchar(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3; INSERT INTO `user` (`id`, `name`) VALUES (1, 'tom'); INSERT INTO `user` (`id`, `name`) VALUES (2, 'lynn'); INSERT INTO `user` (`id`, `name`) VALUES (3, 'amy'); INSERT INTO `user` (`id`, `name`) VALUES (4, 'john'); INSERT INTO `user` (`id`, `name`) VALUES (5, 'jesson');
Ⅱ.Java代码:
package test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JDBCTest {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
// 1.载入JDBC驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 2.建立连接
String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai";
String user = "root";
String password = "123456";
conn = DriverManager.getConnection(url, user, password);
// 3.创建Statement对象
pstmt = conn.prepareStatement("select * from user");
// 4.执行查询或更新
rs = pstmt.executeQuery();
// 5.结果处理
while (rs.next()) {
System.out.println(rs.getInt("id") + "t" + rs.getString("name"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// 6.关闭连接,先关闭结果集ResultSet,然后关闭与处理对象PreparedStatement,最后关闭执行对象Statement
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
Ⅲ.执行结果
1 tom
2 lynn
3 amy
4 john
5 jesson
③注意
要确保数据库存在并且已经打开
4.使用JDBC执行insert、delte、update和select操作
对emp表进行增删改查
CREATE TABLE emp ( id INT NOT NULL, name VARCHAr (15) NOT NULL, hiredate date NOT NULL, sal DECIMAL (10, 2) NOT NULL, PRIMARY KEY (id) ); insert into emp(id, name, hiredate, sal) values (1, 'jesson', '1988-12-02', 4521.5), (2, 'amy', '2012-12-12', 3589.5), (3, 'mary', '2022-02-10', 2545.2), (4, 'ken', '2020-02-10', 3526.2), (5, 'henry', '2012-02-10', 4553.2);
(1)insert
package test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCTest {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
// ResultSet rs = null;
try {
// 1.载入JDBC驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 2.建立连接
String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai";
String user = "root";
String password = "123456";
conn = DriverManager.getConnection(url, user, password);
// 3.创建Statement对象
stmt = conn.createStatement();
// 4.执行更新
int num = stmt.executeUpdate("insert into emp(id, name, hiredate, sal) values(6, 'tom', '2022-01-22', 4999.5);");
// 5.结果处理
System.out.println((num > 0) ? "数据添加成功!": "数据添加失败!");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// 6.关闭连接,先关闭结果集ResultSet,然后关闭与处理对象PreparedStatement,最后关闭执行对象Statement
// if (rs != null) {
// rs.close();
// }
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
(2)delete
package test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCTest {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
// ResultSet rs = null;
try {
// 1.载入JDBC驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 2.建立连接
String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai";
String user = "root";
String password = "123456";
conn = DriverManager.getConnection(url, user, password);
// 3.创建Statement对象
stmt = conn.createStatement();
// 4.执行更新
int num = stmt.executeUpdate("delete from emp where id = 6;");
// 5.结果处理
System.out.println((num > 0) ? "数据删除成功!": "数据删除失败!");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// 6.关闭连接,先关闭结果集ResultSet,然后关闭与处理对象PreparedStatement,最后关闭执行对象Statement
// if (rs != null) {
// rs.close();
// }
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
(3)update
package test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCTest {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
// ResultSet rs = null;
try {
// 1.载入JDBC驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 2.建立连接
String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai";
String user = "root";
String password = "123456";
conn = DriverManager.getConnection(url, user, password);
// 3.创建Statement对象
stmt = conn.createStatement();
// 4.执行更新
int num = stmt.executeUpdate("update emp set sal = 9999.9 where id = 5;");
// 5.结果处理
System.out.println((num > 0) ? "数据更新成功!": "数据更新失败!");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// 6.关闭连接,先关闭结果集ResultSet,然后关闭与处理对象PreparedStatement,最后关闭执行对象Statement
// if (rs != null) {
// rs.close();
// }
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
(4)select
package test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCTest {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 1.载入JDBC驱动程序
Class.forName("com.mysql.jdbc.Driver");
// 2.建立连接
String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai";
String user = "root";
String password = "123456";
conn = DriverManager.getConnection(url, user, password);
// 3.创建Statement对象
stmt = conn.createStatement();
// 4.执行查询
rs = stmt.executeQuery("select name from emp;");
// 5.结果处理
while(rs.next()){
System.out.println(rs.getString("name"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// 6.关闭连接,先关闭结果集ResultSet,然后关闭与处理对象PreparedStatement,最后关闭执行对象Statement
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}



