当前位置: 首页 > news >正文

Java自动化测试之数据库的操作

1. 导入依赖坐标

在Java项目中进行数据库操作时,首先需要在项目的pom.xml文件中添加相应的JDBC驱动依赖。以下是常见数据库的依赖配置示例:

MySQL数据库依赖

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.28</version>
</dependency>

Oracle数据库依赖

<dependency><groupId>com.oracle.database.jdbc</groupId><artifactId>ojdbc8</artifactId><version>21.5.0.0</version>
</dependency>

PostgreSQL数据库依赖

<dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId><version>42.3.3</version>
</dependency>

详情见:Maven通过修改pom.xml配置文件下载指定依赖包,以及解决MVNRepository网站加载和验证问题的方法

2. 定义JDBC工具类

为了提高代码复用性和可维护性,我们可以创建一个JDBC工具类来封装常见的数据库操作。以下是完整的工具类实现示例:

import java.sql.*;public class JdbcUtil {// 数据库连接信息private static final String URL = "jdbc:mysql://localhost:3306/test_db";private static final String USER = "root";private static final String PASSWORD = "123456";// 加载驱动(JDBC 4.0+可以省略)static {try {Class.forName("com.mysql.cj.jdbc.Driver");} catch (ClassNotFoundException e) {e.printStackTrace();}}/*** 获取数据库连接*/public static Connection getConnection() throws SQLException {return DriverManager.getConnection(URL, USER, PASSWORD);}/*** 关闭连接资源*/public static void close(Connection conn, Statement stmt, ResultSet rs) {try {if (rs != null) rs.close();if (stmt != null) stmt.close();if (conn != null) conn.close();} catch (SQLException e) {e.printStackTrace();}}/*** 执行查询SQL*/public static ResultSet executeQuery(String sql, Object... params) throws SQLException {Connection conn = getConnection();PreparedStatement pstmt = conn.prepareStatement(sql);// 设置参数for (int i = 0; i < params.length; i++) {pstmt.setObject(i + 1, params[i]);}return pstmt.executeQuery();}/*** 执行更新SQL(增删改)*/public static int executeUpdate(String sql, Object... params) throws SQLException {Connection conn = getConnection();PreparedStatement pstmt = conn.prepareStatement(sql);// 设置参数for (int i = 0; i < params.length; i++) {pstmt.setObject(i + 1, params[i]);}int result = pstmt.executeUpdate();close(conn, pstmt, null);return result;}
}

3. 示例

3.1 查询示例

// 查询用户表中所有用户信息
String querySql = "SELECT * FROM users WHERE age > ?";
try {ResultSet rs = JdbcUtil.executeQuery(querySql, 18);while (rs.next()) {int id = rs.getInt("id");String name = rs.getString("name");int age = rs.getInt("age");System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age);}
} catch (SQLException e) {e.printStackTrace();
}

3.2 插入示例

// 插入新用户记录
String insertSql = "INSERT INTO users(name, age, email) VALUES(?, ?, ?)";
try {int rows = JdbcUtil.executeUpdate(insertSql, "张三", 25, "zhangsan@example.com");System.out.println("插入成功,影响行数: " + rows);
} catch (SQLException e) {e.printStackTrace();
}

3.3 更新示例

// 更新用户年龄
String updateSql = "UPDATE users SET age = ? WHERE id = ?";
try {int rows = JdbcUtil.executeUpdate(updateSql, 30, 1);System.out.println("更新成功,影响行数: " + rows);
} catch (SQLException e) {e.printStackTrace();
}

3.4 删除示例

// 删除用户记录
String deleteSql = "DELETE FROM users WHERE id = ?";
try {int rows = JdbcUtil.executeUpdate(deleteSql, 1);System.out.println("删除成功,影响行数: " + rows);
} catch (SQLException e) {e.printStackTrace();
}
http://www.dtcms.com/a/528254.html

相关文章:

  • 算法:并行课程II
  • 信阳住房和城乡建设厅网站企业vi设计说明
  • llama.cpp:Android端测试Qwen2.5-Omni
  • Polar Reverse(中等)
  • A2O MAY首张EP《PAPARAZZI ARRIVE》正式上线 全球宣传全面启动
  • MySQL常用内置函数整理:提高你的查询效率
  • MkFont,一款开源免费的字体设计工具
  • 怎么样才能搜索到自己做的网站jquery做的装修网站
  • 基于Chrome140的TK账号自动化——脚本撰写(二)
  • WPF之Style
  • zabbix实现监控Apache、Nginx、php-fpm应用的实操保姆级流程
  • 69.力扣LeetCode_x的平方根
  • linux第二次作业
  • (二)Gradle 依赖仓库及安全凭证配置
  • 医疗信创标杆实践:浙人医 LIS 系统异构多活容灾架构深度解析(附 KingbaseES 实战)
  • 廊坊怎么做网站免费访问国外网站的应用
  • 对网站建设好学吗vps 需刷新几次才能打开网站
  • 百日挑战之单词篇(第三天)
  • 【C++】list 常见使用和模拟实现
  • HTML HTML5基础(2)
  • macOS安装使用Oh My Tmux教程
  • SpringBoot+FFmpeg+ZLMediaKit 实现本地视频推流
  • Mac-终端
  • 中科大分子生物学Ⅲ复习题2025年
  • 关于lvgl-for linxu的dockerfile
  • 做ppt的网站叫什么名字sem和seo是什么职位
  • 临沂网站建设有哪些公司网页制作模板
  • UDP多线程在线咨询
  • 微信小程序原生如何使用画布生成名片
  • Postman介绍和安装,发送带参数的GET请求