我知道Hibernate实现了ORM(对象关系映射),JDBC实现了哪种类型的映射?它实现了DAO吗?我不完全了解DAO如何与JDBC相关…?
DAO不是映射。DAO代表数据访问对象。看起来像这样:
public interface UserDAO {
public User find(Long id) throws DAOException;
public void save(User user) throws DAOException;
public void delete(User user) throws DAOException;
// ...
}
对于DAO,JDBC只是实现细节。
public class UserDAOJDBC implements UserDAO {
public User find(Long id) throws DAOException {
// Write JDBC code here to return User by id.
}
// ...
}
hibernate可能是另一个。
public class UserDAOHibernate implements UserDAO {
public User find(Long id) throws DAOException {
// Write Hibernate code here to return User by id.
}
// ...
}
JPA 可能
是另一个(如果您要将现有的旧版应用程序迁移到JPA;对于新应用程序,这有点奇怪,因为JPA本身实际上是DAO,例如可用的Hibernate和EclipseLink)。
public class UserDAOJPA implements UserDAO {
public User find(Long id) throws DAOException {
// Write JPA code here to return User by id.
}
// ...
}
它允许您在UserDAO
不更改使用DAO的业务代码的情况下切换实现(当然,只有在针对接口正确编码的情况下)。
对于JDBC,您只需要写很多行来查找/保存/删除所需的信息,而使用Hibernate则只需几行。不管您是否正在使用DAO,作为一个ORM进行hibernate都完全可以从您的手中接管到讨厌的JDBC工作。
JavaBean和BeanInfo之间有什么关系吗?我阅读了各种帖子/问题,以及关于JavaBean的内容。有人提到,Bean是一个遵循某些规则的常规类(私有数据成员、getter()、setters()、实现Serializabe接口……)。 我正在翻阅《Java完全参考,第8版》一书,在“Java豆子”一章中遇到了豆子信息。Java豆子和豆子信息有什么关系? 尽管我试图在各种帖子上找到,但我仍
在工作项目中前后端采用了 grpc 的方式通讯,我们约定一份 .proto 文件,然后进行开发。但由于我本人是前端开发,就导致接口文件基本上都是后端开发来编写的,我用到的时候直接调用生成好的 ts 文件就行了,所以对这方面的理解一直模棱两可。 问题:grpc 的方式和传统的 http 通信方式有什么区别呢?(相较于 http grpc 有什么优劣呢?)
问题内容: 我考虑这个问题已有一段时间了,似乎找不到答案。Node.js和V8有什么关系?可以在没有V8的情况下使用Node.js吗? 问题答案: Node.js和V8有什么关系? V8是node.js内的Javascript引擎,用于解析和运行Javascript。Chrome内部使用了相同的V8引擎,以在Chrome浏览器中运行javascript。Google开源了V8引擎,node.js的
问题内容: 我知道默认情况下docker创建一个虚拟网桥,并且所有容器网络都链接到。 如上图所示: 容器与 链接到的机器与链接到交换机的机器相同 但是和主机之间是什么关系呢?进一步来说: 当数据包从容器流到docker0时,如何知道将其转发到eth0,然后再转发到外部世界? 当外部数据包到达eth0时,为什么将其转发到docker0然后转发到容器? 而不是处理它或丢弃它? 问题2可能有点令人困惑,
我正在研究Spring支持的数据访问技术,我注意到它提到了多个选项,但我不确定它们之间的区别: Spring-DAO(http://docs.spring.io/spring/docs/2.0.8/reference/dao.html) Spring-orm(http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/htm
早安, 我尝试创建DAO层,主要遵循以下指南<请注意,我不使用任何框架,只使用普通的JDBC。 看看如何创建连接实例: 在每个CRUD方法中,我们通过以下方式获得连接: 因此,每次调用方法时,我们都会获得一个新的连接 我唯一的问题是如何在这里实现事务 我看到两种解决方案: 我使用连接字段,而不是DaoFactory字段,我在方法之间共享连接字段。以便每个DAO有一个连接。但是,哪一层应该负责事务?