JTA----java Transaction API . 主要用来处理分布式事务。当数据库服务器在不同的主机上的时候就要涉及到JTA的处理。
前面的一些细节:
1.比如我编写的一个方法(read()),我们可以将ResultSet返回出去吗?(这样别人是不是就可以用了)
我们是拿不到ResultSet的,因为Connection都已经关闭了,肯定会报错误。(只要Conection关闭了,所有的通过Connection创建的对象都会变得无效),哪我们将处理得到的结果怎么办呢?肯定不可能直接打印到控制台,一般是讲值封装以后赋给我们的业务逻辑的domain对象。
2.关于JDBC异常的处理
method1:
try{
....
}catch(){
}
直接catch掉肯定是不行的。不会有任何的错误提示。
method2:
try{
//sql
}catch(){
e.printStackTrace();
}
这样也是不行的。
比如我们在一个网站注册,
UserService{
public void register(User user){
userDao.addUser(user);
sendMail.send(user);
}
}
如果我在addUser的时候出错了,你直接打印堆栈后,会执行下面的sendMail.用户去mail中点击超链接,又要去查询数据是否存在。
这样就会出错了。
SQL异常是编译时异常,比较好处理的方式是 变成运行时异常。
catch (Exception e) {
throw new ExceptionInInitializerError(e);
}