为了账号安全,请及时绑定邮箱和手机立即绑定

我用的是MYeclipse 为什么用junit4单元测试,可以正常执行usersAction去调用UsersDaoImpl代码块,但是用struts.xml来调用UsersAction去执行UsersDaoImpl,总是报异常

我用的是MYeclipse 为什么用junit4单元测试,可以正常执行usersAction去调用UsersDaoImpl代码块,但是用struts.xml来调用UsersAction去执行UsersDaoImpl,总是报异常,通过测试发现 用struts.xml来调用UsersAction去执行UsersDaoImpl代码块时 try....catch....里面的语句不执行,但是但用单元测试工具junit4去执行UsersAction代码去调用UsersDaoImpl代码块时,可以正常运行try...catch....里面的代码!有输出不解其中原因


5861174500015c8e05000403.jpg

5861174600016b6405000266.jpg


正在回答

1 回答

附上代码,求大神指点

public boolean userLogin(User u) {

System.out.println(u);//测试值传过来没有

//创建一个事物对象

Session session = HibernateSessionFactory.getSession();

//注意:getTransaction和beginTransaction的区别

Transaction tx = session.getTransaction();

try{

tx.begin();

//此处不能省略

String hql = "from User where username=? and userpassword=?";

Query query = session.createQuery(hql);

//设置用户名和密码0代表where后面的第一个参数,1代表where第二个参数

query.setParameter(0, u.getUsername());

query.setParameter(1, u.getUserpassword());

List<User> list = query.list();

//提交事物(只有在增删改的时候才需要事物)

tx.commit();

// session.close();

//判断是否查询到了用户

//注意:方法的返回值默认以try里面的为准,之所以还要再加一个return返回值,是为了语法不出错而已,返回结果没有实际意义

if(list!=null){

System.out.println("AAAAAAAAAAAAAA");

return true;

}else{

return false;

}

}catch(Exception ex){

ex.printStackTrace();

tx.commit();

}finally{

if(tx != null){

tx=null;

}

}

return false;

}


}


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

我用的是MYeclipse 为什么用junit4单元测试,可以正常执行usersAction去调用UsersDaoImpl代码块,但是用struts.xml来调用UsersAction去执行UsersDaoImpl,总是报异常

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信