引言
JDBC(Java Database Connectivity)是一种用于在 Java 程序中与数据库进行交互的标准API。它提供了一组接口和类,使开发人员能够连接到数据库、执行 SQL 查询和更新等操作。本文将介绍 JDBC 的基本原理和一个数据库操作示例。
基本原理
JDBC 的核心思想是通过不同数据库供应商提供的驱动程序(JDBC Driver)来实现与数据库的通信。开发人员只需要使用标准的 JDBC API,而无需关注具体的数据库实现。JDBC 定义了一组接口和类,开发人员可以使用这些接口和类来连接数据库、执行 SQL 语句以及处理结果集。
JDBC 在数据库操作中的应用
JDBC 在开发中起着至关重要的作用,它使我们能够轻松地与各种类型的数据库进行交互。以下是一些常见的应用场景:
-
数据库连接和管理:JDBC 提供了连接数据库的能力,并支持连接池管理,以提高性能和资源利用率。
-
执行 SQL 查询和更新:通过 JDBC,我们可以执行各种类型的 SQL 查询和更新操作,如 SELECT、INSERT、UPDATE 和 DELETE 等。
-
执行事务处理:JDBC 支持事务处理,可以确保一组相关的数据库操作要么全部成功执行,要么全部回滚。
-
获取元数据信息:通过 JDBC 的元数据 API,我们可以获取数据库的结构信息,如表、列、索引等,以便进行数据模型分析和查询优化。
加载与注册JDBC驱动步骤
1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
2.获取连接
Connection connection = DriverManager.getConnection(url,username,password);
3.定义SQL语句
String sql = "select ..."
4.获取执行SQL对象
Statement stmt = conn.createStatement();
5.执行SQL
stmt.executeUpdate/executeQuery(sql);
6.处理返回结果
7.释放资源
示例
创建一个user表,在java中建立4个Test,分别测试增删改查操作。
表已建好:

jdbc代码如下:
package com.wedu;
import org.junit.Test;
import java.sql.*;
public class problem {
public Connection cs() throws ClassNotFoundException, SQLException {
//注册驱动
Class.forName("com.mysql.jdbc.Driver");
//获取连接
String url = "jdbc:mysql://localhost:3306/my_db";
String username = "root";
String password = "root";
Connection connection = DriverManager.getConnection(url,username,password);
return connection;
}
//增加
@Test
public void add() throws SQLException, ClassNotFoundException {
//定义SQL语句
String sql1 = "INSERT INTO user VALUES(1,\"李四\",21)";
//获取执行SQL对象
PreparedStatement st = cs().prepareStatement(sql1);
//执行SQL
int i = st.executeUpdate();//结果为影响的行数
System.out.println(i);
}
//删除
@Test
public void delete() throws SQLException, ClassNotFoundException {
String sql2 = "DELETE FROM user WHERE id = 1 ";
PreparedStatement st = cs().prepareStatement(sql2);
int i = st.executeUpdate();
System.out.println(i);
}
//修改
@Test
public void update() throws SQLException, ClassNotFoundException {
String sql3 = "UPDATE USER SET age = 30 WHERE id = 1";//将id为1的用户年龄改成30
PreparedStatement st = cs().prepareStatement(sql3);
int i = st.executeUpdate();
System.out.println(i);
}
//查询
@Test
public void select() throws SQLException, ClassNotFoundException {
User user1 = new User();
String sql4 = "SELECT * FROM user where id = ?";//占位符?替代参数
PreparedStatement st = cs().prepareStatement(sql4);//使用PreparedStatement预防SQL注入问题
st.setInt(1,1);//给?赋值
ResultSet i = st.executeQuery();
while (i.next()){
System.out.println(i.getInt(1));//输出每一列的值
System.out.println(i.getString(2));
System.out.println(i.getInt(3));
user1.setId(i.getInt(1));//封装到user类中
user1.setName(i.getString(2));
user1.setAge(i.getInt(3));
}
System.out.println(user1.toString());
}
}
class User{//新建User类来封装查询到的数据
int id;
String name;
int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "user{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
本文详细讲解了JDBC在Java中的应用,包括连接数据库、执行SQL、事务处理和元数据获取,附带一个JDBC操作用户表的示例。

1519

被折叠的 条评论
为什么被折叠?



