java实现连接mysql数据库单元测试查询数据的实例代码
作者:jingxian 发布时间:2024-01-26 12:38:47
标签:java,连接,mysql,数据库
1、按照javaweb项目的要求逐步建立搭建起机构,具体的类包有:model 、db、dao、test;
具体的架构详见下图:
2、根据搭建的项目架构新建数据库test和数据库表t_userinfo并且添加对应的测试数据; (这里我使用的是绿色版的数据库,具体的下载地址:http://pan.baidu.com/s/1mg88YAc)
具体的建立数据库操作详见下图:
3、编写包中的各种类代码,具体参考代码如下:
UserInfo.java
/**
* FileName: UserInfo.java
* @Description: TODO封装对象的信息
* Copyright: personage
* Company personage
* @author: gaoxing
* @version V1.0
* Createdate: 2014-5-25 下午2:26:41
*
* Modification History:
* Date Author Version Discription
* -----------------------------------------------------------------------------------
* 2014-5-25 GX 1.0 1.0
* Why & What is modified: <修改原因描述>
*/
package com.org.user.model;
/**
* @ClassName: UserInfo
* @Description:TODO封装对象的信息
* @author: gaoxing
* @date: 2014-5-25 下午2:26:41
*/
public class UserInfo {
private int userid;
private String username;
private String password;
/**
* @Title: UserInfo
* @Description: TODO(描述这个方法的作用)
* @param: @param userid
* @param: @param username
* @param: @param password
* @throws
*/
public UserInfo(int userid, String username, String password) {
super();
this.userid = userid;
this.username = username;
this.password = password;
}
/**
* @Title: UserInfo
* @Description: TODO无参的构造方法
* @param:
* @throws
*/
public UserInfo() {
super();
}
public int getUserid() {
return userid;
}
public void setUserid(int userid) {
this.userid = userid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
UserInfoDBManger.java
/**
* FileName: UserInfoDBManger.java
* @Description: TODO 连接数据库的操作
* Copyright: personage
* Company personage
* @author: gaoxing
* @version V1.0
* Createdate: 2014-5-25 下午2:47:38
*
* Modification History:
* Date Author Version Discription
* -----------------------------------------------------------------------------------
* 2014-5-25 GX 1.0 1.0
* Why & What is modified: <修改原因描述>
*/
package com.org.user.db;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
/**
* @ClassName: UserInfoDBManger
* @Description:TODO连接数据库的操作
* @author: gaoxing
* @date: 2014-5-25 下午2:47:38
*/
public class UserInfoDBManger {
private static Connection conn = null;
private PreparedStatement ps = null;
private ResultSet rs = null;
public static Connection getConn() {
String url = "jdbc:mysql://localhost:3306/test";
try {
Class.forName("com.mysql.jdbc.Driver");
try {
conn = (Connection) DriverManager.getConnection(url, "root",
"mysql");
} catch (SQLException e) {
System.out.println(e.getMessage());
}
} catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
}
return conn;
}
public void close() {
try {
rs.close();
ps.close();
conn.close();
} catch (SQLException e) {
e.getMessage();
}
}
}
UserInfoDao.java
/**
* FileName: UserInfoDao.java
* @Description: TODO 处理通过数据库的连接进行操作对象信息
* Copyright: personage
* Company personage
* @author: gaoxing
* @version V1.0
* Createdate: 2014-5-25 下午2:36:09
*
* Modification History:
* Date Author Version Discription
* -----------------------------------------------------------------------------------
* 2014-5-25 GX 1.0 1.0
* Why & What is modified: <修改原因描述>
*/
package com.org.user.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import com.org.user.db.UserInfoDBManger;
import com.org.user.model.UserInfo;
/**
* @ClassName: UserInfoDao
* @Description:TODO处理通过数据库的连接进行操作对象信息
* @author: gaoxing
* @date: 2014-5-25 下午2:36:09
*/
public class UserInfoDao {
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
public List<UserInfo> find(){
List<UserInfo> list=new ArrayList<UserInfo>();
String sql="select * from t_userinfo ";
conn=UserInfoDBManger.getConn();
try {
ps=(PreparedStatement) conn.prepareStatement(sql);
rs=ps.executeQuery();
while (rs.next()) {
UserInfo ui=new UserInfo();
ui.setUserid(rs.getInt(1));
ui.setUsername(rs.getString(2));
ui.setPassword(rs.getString(3));
list.add(ui);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
}
UserInfoTest.java
/**
* FileName: UserInfoTest.java
* @Description: TODO测试dao包的方法
* Copyright: personage
* Company personage
* @author: gaoxing
* @version V1.0
* Createdate: 2014-5-25 下午5:43:03
*
* Modification History:
* Date Author Version Discription
* -----------------------------------------------------------------------------------
* 2014-5-25 GX 1.0 1.0
* Why & What is modified: <修改原因描述>
*/
package com.org.user.test;
import static org.junit.Assert.*;
import java.util.List;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import com.org.user.dao.UserInfoDao;
import com.org.user.model.UserInfo;
/**
* @ClassName: UserInfoTest
* @Description:TODO 测试dao包的方法
* @author: gaoxing
* @date: 2014-5-25 下午5:43:03
*/
public class UserInfoTest {
/**
* @Title: setUpBeforeClass
* @Description: TODO(描述这个方法的作用)
* @param: @throws java.lang.Exception
* @return: void
* @throws
*/
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
/**
* @Title: tearDownAfterClass
* @Description: TODO(描述这个方法的作用)
* @param: @throws java.lang.Exception
* @return: void
* @throws
*/
@AfterClass
public static void tearDownAfterClass() throws Exception {
}
/**
* Test method for {@link com.org.user.dao.UserInfoDao#find()}.
*/
@Test
public void testFind() {
UserInfoDao udao=new UserInfoDao();
List<UserInfo> list=udao.find();
for (int i = 0; i < list.size(); i++) {
UserInfo ui=list.get(i);
System.out.println("名称: "+ui.getUsername()+"密码: "+ui.getPassword());
}
}
}
4、在编写好类内容之后,在搭建项目过程中要加入辅助的JUnit的测试包junit.jar,同时也要导入数据库的连接mysq-connector-java-5.1.7-bin.jar sqljdbc.jar,这样才可以连接到数据库;
5、所有的工作做好之后,就可以启动服务进行运行了查看结果了,如果在JUnit测试台和控制台出现如下结果就表示项目运行成功了。


猜你喜欢
- 近日,sql数据库入门学习群有朋友问到,利用sql如何删除表格的前1000行数据,是否可以实现?如果是oracle数据库管理软件,实现起来相
- DIV与TABLE本身并不存在什么优缺点,所谓web标准只是推荐的是正确的使用标签,好比说:DIV用于布局,而TABLE则本来就是转二维数据
- import上一级目录的模块python中,import module会去sys.path搜索,sys.path是个列表,并且我们可以动态修
- 步骤一:下载对应的CURL压缩包并在windows上配置好环境变量进入CURL官网下载对应的windows压缩包。地址:点击打开链接把下载好
- go-cqhttp安装一、 简介1、 介绍官方文档地址:https://docs.go-cqhttp.org/各种框架都只是机器人的各种实现
- 今天在使用pytorch进行训练,在运行 loss.backward() 误差反向传播时出错 :RuntimeError: grad can
- Mysql字段为null的加减乘除运算数据库表test_table如下查询:select id,total,used,(total - us
- 今天来记录下js来自定义鼠标右键,同样先来分解下它的实现原理:1、屏蔽右键默认事件;(一度我以为修改的就是默认事件)2、对一个ul的隐藏;(
- 调用JSON.stringify将对象转为对应的字符串时,如果包含时间对象,时间对象会被转换为国家标准时间(ISO),而不是当前国家区域的时
- 后台线程•Master Thread核心后台线程,主要负责将缓冲池的数据异步刷新到磁盘。例如脏页的刷新,插入缓冲的合并,undo 页的回收等
- 前言在接口测试的过程中,经常会遇到有些接口需要在登录的状态下才能请求,否则会提示请登录,那么怎样解决呢?我们可以通过Cookie绕过登录,其
- 本文实例讲述了js省市联动效果。分享给大家供大家参考,具体如下:运行效果截图如下:具体代码如下:<html> <head&
- DNA序列ACTGATCGATTACGTATAGTATTTGCTATCATACATATATATCGATGCGTTCAT求其互补DNA序列。在
- 本文实例讲述了JSP使用MVC模式完成删除和修改功能的方法。分享给大家供大家参考。具体如下:目标:① 进一步理解MVC模式;② 掌握删除功能
- 索引是什么?索引是帮助MySQL进行高效查询的一种数据结构。好比一本书的目录,能加快查询的速度索引的结构?索引可以有B-Tree索引,Has
- 最近一直在玩数独,突发奇想实现图像识别求解数独,输入到输出平均需要0.5s。整体思路大概就是识别出图中数字生成list,然后求解。输入输出d
- 类是面向对象程序设计的一部分。面向对象程序设计或者简称为 OOP 致力于创建可重用代码块称之为类。当你想在你的程序中使用类时,你会从类中创建
- 本文实例讲述了Python面向对象程序设计之私有属性及私有方法。分享给大家供大家参考,具体如下:如果有一个对象,当需要对其进行修改属性时,有
- 在一众有趣的Python库中,TQDW也算是独树一帜了,原因主要是因为自身所存在的功能效果,比如我们如果在写项目,往往会忘记我们要完成多少量
- 3月27日,淘宝网获得了由国际权威机构G-CEM颁发的2008年度亚洲区在线客户体验大奖,这是全球互联网企业首次获得此殊荣。如何在让买家更方