weixin_50764406 2021-06-19 16:34 采纳率: 100%
浏览 43
已采纳

初学java web 测试类运行时报错,如何能解决

按视频一步步操作,不知少做了哪一步

package cn.ybzy.mvcproject.utils;

import org.junit.jupiter.api.Test;

import cn.ybzy.mvcproject.dao.UserDao;
import cn.ybzy.mvcproject.dao.UserDaoImpl;
import cn.ybzy.mvcproject.model.User;


class UserDaoImplTest {
	UserDao userDao = new UserDaoImpl();

	@Test
	void testGetInt() {
		
		User user = userDao.get(2);
		System.out.println(user);
	}

}

package cn.ybzy.mvcproject.dao;

import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.sql.Connection;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;

import cn.ybzy.mvcproject.utils.JdbcUtils;

import com.mchange.v2.c3p0.ComboPooledDataSource.*;

/*
 * 這是一個dao的基本類,在與被具體的dao類繼承,UserDao去繼承它來用的,不能用 new Dao()來直接使用它
 * 爭對要操作的數據表映射到JAVA工程裏的JAVA類
 * 對數據庫進行增、刪、改、查
 */
public class BaseDao<T> {
	QueryRunner queryRunner = new QueryRunner();
	
	/*
	 * 查询数据表,取出SQL语句结果集的第一个数据,封装成一个类的对像返回,不支持事务。
	 */
	private Class<T> clazz;
	public BaseDao() {
		//用BaseDao构造方法初始化clazz属性
		Type superType = this.getClass().getGenericSuperclass();//getGenericSuperclass的作用是拿到调用者的父类
		if(superType instanceof ParameterizedType) {
			ParameterizedType pt = (ParameterizedType) superType;
			Type[] tarry = pt.getActualTypeArguments();//返回一个类型数组,第一个元数就是我们需要的T,User.calss
			if(tarry[0] instanceof Class) {
				clazz = (Class<T>) tarry[0];
			}
		}
	}
	
	public T get(String sql,Object...args) {
		Connection conn = null;
		T entity = null;
		try {
			conn = JdbcUtils.getConnection();
			entity = queryRunner.query(conn, sql, new BeanHandler<T>(clazz), args);
			//null的位置,需要转入BaseDao<T>里面的T的真正用起来的类型Class;
		}catch (Exception e){
			e.printStackTrace();
		}finally {
			JdbcUtils.closeConn(conn);
		}
		
		return entity;		
	}
	/*
	 * 查询数据表,取出SQL语句结果集的第一个数据,封装成一个类的对像返回,不支持事务。
	 */
	public T get(Connection conn,String sql,Object...args) {
		T entity = null;
		try {
			entity = queryRunner.query(conn, sql, new BeanHandler<T>(clazz), args);
		}catch (Exception e){
			e.printStackTrace();
		}finally {
			
		}
		
		return entity;		
	}

	
}


package cn.ybzy.mvcproject.dao;

import java.util.List;

import cn.ybzy.mvcproject.model.User;

public class UserDaoImpl extends BaseDao<User> implements UserDao {

	@Override
	public int save(User user) {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public int deleteUserByID(int id) {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public int updateUserByID(int id) {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public User get(int id) {
		// TODO Auto-generated method stub
		String sql = "select `id`,`username`,`pasword`,`phone_no` phoneNo,`address`,`reg_date` regDate from `users` where `id`=?; ";
		return super.get(sql, id);
		
	}

	@Override
	public List<User> getListAll() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public int getCountByName(String username) {
		// TODO Auto-generated method stub
		return 0;
	}

}

,程序中都没有报错,在网上找了各种解决方法都无效。求指导。

  • 写回答

2条回答 默认 最新

  • CSDN专家-sinJack 2021-06-19 16:41
    关注

    报错信息方便发出来看看嘛,看下你的报错,以及哪一行报错的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 #Qt Transform setTransform()在鼠标拖动移动视角是一致在原地不动,无法变换视角(细微观察似乎视图有在原地抖动),无法变换视角(细微观察似乎视图有在原地抖动)
  • ¥50 如何利用无人机拍摄的数码照片测量鸟卵的长短径
  • ¥100 github贡献者给与奖励
  • ¥15 使用DS18B20+ESP8266获取温度数据返回-127.00
  • ¥15 odbc代码新增sqlserver数据源
  • ¥15 MATLAB代码求涡量
  • ¥15 求一个USB指纹识别的驱动
  • ¥15 wps中工作表与工作表之间怎么汇总信息?
  • ¥50 请教Windows server 2012 R2的DCOM配置问题
  • ¥15 adasis v3中LaneConnectivity