Java连接MySQL数据库单元测试查询代码示例
本文将介绍如何使用Java连接MySQL数据库并进行单元测试查询数据。通过一个实际的代码示例,展示了项目结构的构建、数据库及表的创建,以及相关的类和方法编写。 在Java开发中,连接MySQL数据库是常见的任务,特别是在Web应用中。下面的步骤和代码将展示如何实现这一过程,并进行单元测试。 1. 项目结构: 通常,Java Web项目会遵循MVC(模型-视图-控制器)架构,这里的项目结构包括`model`、`db`、`dao`和`test`四个主要部分: - `model` 包含业务对象,如`UserInfo`类,用于封装数据库中的记录。 - `db` 用于存放与数据库交互的配置和工具类。 - `dao` 数据访问对象,包含与数据库进行CRUD(创建、读取、更新、删除)操作的方法。 - `test` 单元测试代码,验证DAO层功能是否正常。 2. 数据库准备: 创建名为`test`的数据库,并在其中建立一个名为`t_userinfo`的表,存储用户信息。表结构应与`UserInfo`类的属性相对应。确保添加一些测试数据以便进行查询。 3. 编写代码: - UserInfo.java: ```java package com.org.user.model; public class UserInfo { private int userId; private String username; private String password; // 构造器、getter和setter方法 // ... } ``` - 数据库连接配置: 在`db`包内创建配置文件或工具类,如`DBUtil.java`,包含连接数据库的相关参数(URL、用户名、密码等)和连接/关闭数据库的方法。 - DAO类: 在`dao`包内创建`UserDAO.java`,实现对`t_userinfo`表的CRUD操作。例如查询用户信息的方法: ```java package com.org.user.dao; import com.org.user.model.UserInfo; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class UserDAO { public UserInfo getUserById(int userId) { Connection conn = DBUtil.getConnection(); String sql = "SELECT * FROM t_userinfo WHERE userid = ?"; PreparedStatement pstmt = null; ResultSet rs = null; try { pstmt = conn.prepareStatement(sql); pstmt.setInt(1, userId); rs = pstmt.executeQuery(); if (rs.next()) { UserInfo userInfo = new UserInfo(); userInfo.setUserId(rs.getInt("userid")); userInfo.setUsername(rs.getString("username")); userInfo.setPassword(rs.getString("password")); return userInfo; } } catch (SQLException e) { e.printStackTrace(); } finally { DBUtil.closeResources(rs, pstmt, conn); } return null; } } ``` - 单元测试: 在`test`包内创建`UserDAOTest.java`,使用JUnit框架对`UserDAO`的`getUserById`方法进行测试: ```java package com.org.user.test; import com.org.user.dao.UserDAO; import com.org.user.model.UserInfo; import org.junit.Test; import static org.junit.Assert.*; public class UserDAOTest { @Test public void testGetUserById() { UserDAO userDAO = new UserDAO(); UserInfo userInfo = userDAO.getUserById(1); // 假设ID为1的用户存在 assertNotNull(userInfo); assertEquals(1, userInfo.getUserId()); assertEquals("testUser", userInfo.getUsername()); assertEquals("testPass", userInfo.getPassword()); } } ``` 通过以上步骤,我们完成了Java连接MySQL数据库并进行单元测试查询数据的基本流程。在实际开发中,可能还需要考虑异常处理、事务管理、连接池等更复杂的细节,但这个例子已经涵盖了基础部分。确保所有代码都能正常运行,并且单元测试成功,那么就证明了数据查询功能的正确性。
- 粉丝: 4
- 资源: 936
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- OptiX传输试题与SDH基础知识
- C++Builder函数详解与应用
- Linux shell (bash) 文件与字符串比较运算符详解
- Adam Gawne-Cain解读英文版WKT格式与常见投影标准
- dos命令详解:基础操作与网络测试必备
- Windows 蓝屏代码解析与处理指南
- PSoC CY8C24533在电动自行车控制器设计中的应用
- PHP整合FCKeditor网页编辑器教程
- Java Swing计算器源码示例:初学者入门教程
- Eclipse平台上的可视化开发:使用VEP与SWT
- 软件工程CASE工具实践指南
- AIX LVM详解:网络存储架构与管理
- 递归算法解析:文件系统、XML与树图
- 使用Struts2与MySQL构建Web登录验证教程
- PHP5 CLI模式:用PHP编写Shell脚本教程
- MyBatis与Spring完美整合:1.0.0-RC3详解