小编Zac*_*ach的帖子

Java JDBC vs JPA用于数据库应用程序

我想作为一个新手寻求建议,因为我正在努力养成良好的习惯.

我正在开发的应用程序是一个高度集成的数据库应用程序.当我开发和探索并实现每个实体的需求时,我发现我的类只是用代码爆炸,以不同的方式在每个实体上运行查询.

虽然现在可能不是一件坏事,但在维护方面,我预见我的应用程序是调试和更新的噩梦.

有没有任何JDBC专家对设计模式有什么建议可以帮助减少锅炉板类型代码以处理所有这些查询?或者我应该完全偏离并使用JPA?

我过去曾试图实现JPA,但是在复杂的实体关系方面遇到了麻烦.我应该只读一本JPA书并从那里开始吗?

java design-patterns jpa jdbc

9
推荐指数
2
解决办法
1万
查看次数

使用未经检查和已检查异常的接口声明

我已经在下面搜索了我的问题的潜在答案,但没找到.

我理解已检查和未检查的异常之间的区别以及程序员可以/必须对它们执行的操作.但是,我不太明白编译器在接口方面如何解释未经检查的异常.

最近,我编写了一个类似于以下内容的接口和实现:

public interface Operation {
    int operate(int x, int y) throws ArithmeticException;
}

public class Divide implements Operation {
    @Override
    public int operate(int x, int y) throws ArithmeticException {
        try {
            return x / y;
        } catch (ArithmeticException ex) {
            System.out.println("Division error!");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我困惑的地方.以下实现也将编译:

public class Divide implements Operation {
    @Override
    public int operate(int x, int y) {
        return x / y;
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么编译器不关心我已经将该方法声明为在接口中抛出异常?我理解,未经检查的异常是运行时异常,并且程序员不需要处理它们,但是不明白为什么当我在界面中明确声明我希望处理异常时它不会强迫我处理它.

有人可以解释为什么编译器会允许这种情况发生吗?

java exception-handling interface

8
推荐指数
2
解决办法
6289
查看次数