草庐IT

Green-DAO

全部标签

java - 从另一个服务调用服务与 dao

我有用户和角色实体和服务,以及它们的DAO层。我需要UserService的角色列表。我应该从UserService使用哪一层?RoleServicevsRoleDAO的调用列表方法?哪一个是常用的,为什么? 最佳答案 通常DAO层靠近数据库,服务层封装您的业务逻辑,执行任何交易或其他事情,而不仅仅是调用DAO。服务调用另一个服务更常见,因为您的RoleService可以对一些业务代码进行评估,您可以从交易或通过JMS传递消息中获益,或者您可以在未来的服务方法上获得一些安全性。因此,分离关注点是一种很好的做法。很容易模拟服务和测试(

java - 拥有单例 DAO 对象可以吗?

考虑以下类的结构:BaseDAO具有用于创建PreparedStatement并从池中获取连接的方法AccountDAO扩展BaseDAO以通过JDBC使用Account表。这个类是单例的AccountService像这样调用AccountDAO的方法:AccountDAO.getInstance().login(名称,密码)。AccountDAO是一个带有@Transactional注释的Springbean,用于插入一些数据的方法。这样可以吗?我认为单例DAO类会导致性能问题。在服务层类中使用一些spring注入(inject)可能更好?(我是Spring的新手,所以任何建议都会被

java - DAO 管理交易的设计是否糟糕?

我一直在阅读有关sun蓝图GenericDAO实现的信息,以及GavinKing对此的看法以便与Hibernate一起使用。似乎他没有提到任何关于交易处理的事情:publicabstractclassGenericHibernateDAO{protectedSessiongetSession(){returnHibernateUtil.getSessionFactory().getCurrentSession();}publicTmakePersistent(Tentity){getSession().saveOrUpdate(entity);returnentity;}}我很困惑我应

java - 使用 DAO 和 Web 服务的数据库插入方法的 Junit 测试用例

我正在实现一个基于网络服务的大学管理系统。该系统将某些类(class)添加到数据库中。下面是我正在使用的代码。Course.javapublicclassCourse{privateStringcourseName;privateStringlocation;privateStringcourseId;publicStringgetCourseId(){returncourseId;}publicvoidsetCourseId(StringcourseId){this.courseId=courseId;}publicStringgetCourseName(){returncourse

java - Spring-Hibernate DAO 命名约定?

以下列方式命名DAO是否很典型:UserDAO-interfaceUserDAOImpl-implementsUserDAO我想知道使用后缀“Impl”来实现是否是标准,或者更有意义的东西是否是最佳实践。谢谢。 最佳答案 这就是我通常使用的。有时,Default前缀(如DefaultUserDAO)可能更有意义,如果您正在创建一个您希望其他人实现但您提供引用实现的接口(interface)。大多数时候我觉得这两者可以互换使用,但在某些情况下,一个比另一个更清晰。 关于java-Sprin

java - 每个 'container' 类一个 DAO 还是每个表一个 DAO?

我有一个“容器”类,其字段包含在多个数据库表中,我使用DAO模式来访问数据。问题是,我应该为这个“容器”类创建一个DAO,还是每个表有一个DAO并合并它们的数据更好? 最佳答案 您应该根据应用程序的需要而不是数据库的布局来设计DAO。从一个DAO开始,如果它变得太大,则以对您的代码有意义的方式将其重构为多个DAO。DAO的全部要点是从您的应用程序中隐藏任何数据库概念(如表)。您的应用程序应该将其视为具有一些有用方法的服务。例如,如果您的应用程序需要一些来自Users表和EmailAddresses表的用户数据,您的应用程序代码不应该

java - DAO 方法和同步

以下是我目前在抽象DAO类中的方法。如果有并发调用,它们是否安全,还是应该使用同步?我知道如果有对方法范围之外的属性的引用,应该使用同步,但我不清楚应该如何使用外部资源处理事情。publicConnectiongetConnection(){//CalltosingletonhandlingJDBCstuffreturnDatabase.getInstance().getCon();}publicbooleanisConnectionAvailable(){if(getConnection()!=null){returntrue;}returnfalse;}publicPrepared

java - 如何避免在服务类中重复 DAO 方法? @Transactional 注释 DAO 和服务类 - 这是可以接受的做法吗?

我知道最佳实践是同时拥有服务层和Dao层,并在服务层添加@Transactional注解。但在我的例子中,这意味着我的大部分服务类都是为了重复DAO方法而创建的……这很烦人。例如。publicinterfaceFooDAO{publicListlist(intcathegoryId);publicListlist(intcathegoryId,intownerId);}@Service@TransactionalpublicclassFooService{protected@AutowiredFooDAOdao;publicListlist(intcathegoryId){dao.li

抛开意识形态 DAO是什么?

相信很多人都有同样的感受,每当讨论“DAO是什么”的时候总会有一种坠入感。因为一旦当你试图解释它,你就需要不断地引入新的论点,而新论点的引入范围会随着你解释的深度指数增长。于是,我们开始在一个论点的海洋里越潜越深...其根因在于,在我们的意识中,DAO涉及了很多宏大的母题,如政治、社会、组织、金融、生产等等,而每一个母题都会涉及大量意识形态的讨论。于是宽泛的母题范围加上不可能有统一答案的众多意识形态就造成了解释和理解DAO的复杂性。那么,有没有一种解释方法可以剥开这些母题尤其是意识形态的肌理而试探其最基础的骨架?本文是我的一次尝试。以下是正文:DAO是什么DAO是一种将生产关系协议化的组织或网

java - 如何模拟私有(private) dao 变量?

我有一个dao.create()调用,我想在测试方法时对其进行模拟。但是我还是遗漏了一些东西,因为我仍然在接受NPE。这里有什么问题?classMyService{@InjectprivateDaodao;publicvoidmyMethod(){//..dao.create(object);//}}如何模拟dao.create()调用?@RunWith(PowerMockRunner.class)@PrepareForTest(DAO.class)publicvoidMyServiceTest{@TestpublicvoidtestMyMethod(){PowerMockito.mo