文章目录
- 一. JDBC介绍
- 二. 数据库驱动
- 1.DriverManager
- 2.Connection
- 3.PreparedStatement
- 4.ResultSet
- 三. JDBC连接MySQL
- 1. 加载驱动
- 2. 获得连接
- 3. 关闭连接
- 四. JDBC实现数据新增
- 五. JDBC实现数据删除
一. JDBC介绍
-
JDBC(Java Database Connectivity)是Java平台的标准API,用于执行SQL语句并与数据库进行交互。
-
JDBC为Java应用程序提供了访问各种数据库系统的统一接口,使得开发人员可以编写与数据库无关的应用程序。
-
在JDBC出现之前,每个数据库厂商都有自己的API和连接方式,这导致开发人员需要为不同的数据库编写不同的代码。
-
JDBC的出现解决了这一问题,通过提供一个标准的API,使得Java应用程序可以轻松地连接和操作不同类型的数据库。
二. 数据库驱动
JDBC通过数据库驱动程序来实现与特定数据库的通信。
每个数据库厂商通常会提供一个JDBC驱动程序,该驱动程序实现了JDBC API,使得Java应用程序可以通过JDBC接口与数据库进行交互。常见的数据库驱动程序包括(需要在编辑器中导入对应的jar包):
1.DriverManager
DriverManager 类是JDBC的核心类之一,用于管理和注册驱动程序,并建立数据库连接。
getConnection(String url, String user, String password)
: 获取数据库连接。
2.Connection
表示与数据库的连接。通过 Connection 对象,可以创建 PreparedStatement 对象,用于执行所对应的SQL语句。
3.PreparedStatement
用于执行预编译的SQL语句,可以提高性能并防止SQL注入攻击。
4.ResultSet
表示查询结果集,提供了遍历和检索结果的方法。常用的方法包括:
-
next()
: 移动到下一个记录。 -
getString(int columnIndex)
: 获取指定列的字符串值。 -
getInt(int columnIndex)
: 获取指定列的整数值。
三. JDBC连接MySQL
1. 加载驱动
static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
2. 获得连接
public static Connection getCon() {
Connection con=null;
try {
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库名?
serverTimezone=GMT","用户名","密码");
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
3. 关闭连接
public static void close(Connection con, PreparedStatement ps, ResultSet rs) {
try {
if (con ≠ null)
con.close();
if (ps ≠ null)
ps.close();
if (rs ≠ null)
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
}
四. JDBC实现数据新增
public class Book {
private int id;
private String title;
private double price;
private String description;
}
public int add(Book b) {
try {
con=DBHelper.getCon();
String sql="insert into book(title,price,description)"
+ " values(?,?,?)";
ps=con.prepareStatement(sql);
ps.setString(1, b.getPrice());
ps.setString(2, b.getAuthor());
ps.setString(3, b.getDescription);
return ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
五. JDBC实现数据删除
public int del(Integer id) {
try {
con=DBHelper.getCon();
String sql="delete from book where id=?";
ps=con.prepareStatement(sql);
ps.setInt(1, id);
return ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}