JDBC增删改查 头歌
时间: 2025-01-26 12:10:08 浏览: 18
使用JDBC在头歌平台进行CRUD操作
什么是JDBC?
Java Database Connectivity (JDBC) 是一种用于执行 SQL 语句的 Java API,它由一组用 Java 编程语言编写类和接口组成。此API可用于多种关系型数据库,并允许开发者使用各种数据源(通常为SQL数据库)执行查询并更新记录[^1]。
准备工作
为了能够在头歌平台上利用JDBC完成对MySQL数据库的操作,需先确保环境配置正确:
- 安装好JDK以及IDEA/Eclipse等集成开发工具;
- 下载对应版本的 MySQL JDBC 驱动程序 jar 文件,并将其加入项目依赖路径中;
- 创建目标数据库及其表结构;
CRUD的具体实现
连接数据库
建立与MySQL服务器之间的连接是所有操作的前提条件之一,在这里给出一段通用代码片段作为示范:
import java.sql.Connection;
import java.sql.DriverManager;
public class JDBCDemo {
private static final String URL = "jdbc:mysql://localhost:3306/testdb";
private static final String USER = "root";
private static final String PASSWORD = "";
public Connection getConnection() throws Exception{
Class.forName("com.mysql.cj.jdbc.Driver");
return DriverManager.getConnection(URL,USER,PASSWORD);
}
}
上述代码定义了一个名为getConnection()
的方法用来获取Connection对象实例,其中包含了数据库URL地址、用户名及密码信息。注意这里的Driver名称可能因不同版本而有所差异,请参照官方文档确认最新写法[^2]。
执行查询(Read)
对于读取操作而言,可以采用如下方式构建PreparedStatement对象并通过executeQuery方法返回ResultSet结果集来进行处理:
String sql="SELECT * FROM users WHERE id=?";
try(Connection conn=getConnection()){
try(PreparedStatement pstmt=conn.prepareStatement(sql)){
pstmt.setInt(1,idValue); // 设置参数值
ResultSet rs=pstmt.executeQuery();
while(rs.next()){
System.out.println("ID:"+rs.getInt("id"));
System.out.println("Name:"+rs.getString("name"));
}
}catch(SQLException e){
e.printStackTrace();
}
}catch(Exception ex){
ex.printStackTrace();
}
这段代码展示了如何安全地传递变量至预编译好的SQL命令里,并遍历检索出来的每一行记录打印出来。
添加(Create)/修改(Update)/删除(Delete)
这三种类型的DML(Data Manipulation Language)指令可以通过调用Statement或PreparedStatment所提供的相应函数来达成目的。下面分别举例说明:
插入新纪录
String insertSql="INSERT INTO users(name,email,password) VALUES(?,?,?)";
try(Connection conn=getConnection()){
try(PreparedStatement pstmt=conn.prepareStatement(insertSql)){
pstmt.setString(1,"John Doe");
pstmt.setString(2,"john@example.com");
pstmt.setString(3,"secret");
int affectedRows=pstmt.executeUpdate(); // 返回受影响行数
if(affectedRows>0){
System.out.println("Insert succeeded.");
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
} catch (Exception exception) {
exception.printStackTrace();
}
更新现有条目
String updateSql="UPDATE users SET email=? WHERE name=?";
try(Connection conn=getConnection()){
try(PreparedStatement pstmt=conn.prepareStatement(updateSql)){
pstmt.setString(1,newEmail);
pstmt.setString(2,name);
int updatedCount=pstmt.executeUpdate();
if(updatedCount==1){
System.out.printf("%d row was successfully updated.",updatedCount);
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
} catch (Exception exception) {
exception.printStackTrace();
}
移除指定项
String deleteSql="DELETE FROM users WHERE id=?";
try(Connection conn=getConnection()){
try(PreparedStatement pstmt=conn.prepareStatement(deleteSql)){
pstmt.setInt(1,targetId);
int deletedCount=pstmt.executeUpdate();
if(deletedCount>=0){
System.out.printf("%d rows were removed from the database.",deletedCount);
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
} catch (Exception exception) {
exception.printStackTrace();
}
以上就是基于JDBC技术栈下针对MySQL所作的一些基础性的CURD实践案例。
相关推荐

















