比如一个接口
public interface Facade{
public boolean Login(String username,String password);
}一个实现(通过Spring注入一个SqlMapClient):
class FacadeImpl implements Facade{
private SqlMapClient Mapper;
public boolean Login(String username,String password){
HashMap map ....此处省略,主要是把参数放进去
return Mapper.QueryForObject("test",map)==null;
}
}问题来了,MyEclipse5.1GA报错,说SqlMapClient的QueryForObject方法声明了异常SQLException抛出,
必须在Login方法上同样声明抛出此类异常,这倒也ok,问题是后面又说接口也要声明异常,这就痛苦了,
难道我的每个接口的方法一涉及到数据库就得声明这个异常吗?感觉太不人性化了啊,我看过另一个项目的源代码,人家的Service接口就从来没有声明过throws,这是怎么回事,他用了SqlClientTempla以及support等iBatis提示不建议使用的类,我都糊涂了,求好心人解惑,非常感谢!!!!
public interface Facade{
public boolean Login(String username,String password);
}一个实现(通过Spring注入一个SqlMapClient):
class FacadeImpl implements Facade{
private SqlMapClient Mapper;
public boolean Login(String username,String password){
HashMap map ....此处省略,主要是把参数放进去
return Mapper.QueryForObject("test",map)==null;
}
}问题来了,MyEclipse5.1GA报错,说SqlMapClient的QueryForObject方法声明了异常SQLException抛出,
必须在Login方法上同样声明抛出此类异常,这倒也ok,问题是后面又说接口也要声明异常,这就痛苦了,
难道我的每个接口的方法一涉及到数据库就得声明这个异常吗?感觉太不人性化了啊,我看过另一个项目的源代码,人家的Service接口就从来没有声明过throws,这是怎么回事,他用了SqlClientTempla以及support等iBatis提示不建议使用的类,我都糊涂了,求好心人解惑,非常感谢!!!!
解决方案 »
- Linux下hello world 出错
- 求java swing 高手给点思路
- 高手快来,跨域,tomcat取得数据后,如何主动刷新它域下面的某个页面
- 以jboss作服务器处理JMS消息队列,可以发送却不能接受消息,大家帮我看看哈
- 关于upcasting,高手高手高高手进,谢谢!
- 使用ibatis和hsqldb在junit中测试时insert的内容没有保存
- java初学者问题
- 用了两三年java了(各位大侠不要笑我)第一次接触这个web Services,用它与不用它有什么区别?
- 关于jsp网页实现打印的问题
- 一个rmic的问题郁闷了我好几天!
- jsp能写servlet类 吗 jsp页面当servlet类?
- 请教大神一个相当基础的问题,为什么new线程执行报错,不new线程执行不报错
千万别出现
try{
...
}catch(Exception e){
//最差劲也要throw
}
当然 你也可以写一个 baseService 把QueryForObject 这些方法重新封装一下 然后里面都
try{
Mapper.QueryForObject...
}catch(Exception e){
e.printStackTrace();
}
不过不建议这么做,如果有事物的话不会回滚,后续还有其他操作的话不会中断。可能遇到意想不到的结果那时候就会很欢乐