标签: dao

Spring-Hibernate DAO命名约定?

以下列方式命名DAO是否典型:

UserDAO - interface
UserDAOImpl - implements UserDAO
Run Code Online (Sandbox Code Playgroud)

我想知道它的标准是使用后缀'Impl'来实现,还是更有意义的东西是最佳实践.谢谢.

java spring dao hibernate

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

DAO方法和同步

以下是我目前在抽象DAO类中使用的方法.如果有并发呼叫,它们是安全的还是应该同步使用?我知道如果存在对方法范围之外的属性的引用,则应该使用同步,但是我不清楚如何使用外部资源来处理事情.

public Connection getConnection() {
    // Call to singleton handling JDBC stuff
    return Database.getInstance().getCon();
}

public boolean isConnectionAvailable(){     
    if( getConnection() != null ){
        return true;
    }

    return false;
}

public PreparedStatement getPreparedStatement( String sqlStatement ){
    Connection connection = getConnection();
    PreparedStatement pS = null;

    if( connection != null ){
        try {
            pS = connection.prepareStatement( sqlStatement );
        } catch (SQLException e) {
            return null;
        }
    }

    return pS;
}
Run Code Online (Sandbox Code Playgroud)

编辑:我可能会重新编写这个问题,以包含有关编写DAO的信息,因为它在这里很重要.

java synchronization dao jdbc

8
推荐指数
1
解决办法
6148
查看次数

用弹簧对hibernate daos进行单元测试

我喜欢为我的hibernate dao实现编写JUnits,并就编写这些单元测试用例的建议方法征求意见.我可以想到两个策略.

  • 使用像EasyMock这样的库来模拟hibernate模板,并针对这些模拟对象测试DAO实现.(并不是真的令人满意,因为我将针对模拟层进行测试而不是真正针对测试数据)

  • 在运行我的单元测试之前,通过编写一些测试数据来测试真实的测试数据库(内存/外部).

哪种方法是确保我们的DAO得到适当测试的好方法.请指出使用第二种方法配置测试的任何示例.我试着环顾四周,但没找到合适的.

谢谢,西瓦.

junit spring unit-testing dao hibernate

8
推荐指数
1
解决办法
5859
查看次数

在DAO服务层架构中使用Spring MVC和Hibernate的正确方法是什么

我正在Hibernatedaosupport为我的DAO课程使用Spring MVC .在这里混淆在哪里开始交易,是否应该在服务层或DAO层?

我的视图与服务层交互.DAO被注入服务.

在DAO服务层架构中使用Spring MVC和Hibernate的正确方法是什么?

architecture spring dao hibernate spring-mvc

8
推荐指数
1
解决办法
4206
查看次数

如何通过sql查询获取文件的文件扩展名?

我有一个名为的表datas,我正在执行这样的查询:

SELECT linkurl AS DOWNLOADURL,
       lastrevlevel AS VERSION,
       code AS DESCRIPTION,
       created AS RELEASEDATE,
       name AS TYPE
FROM datas
WHERE id IN (SELECT child_id
          FROM   datas _datas
          WHERE  parent_id = (SELECT Max(id)
                              FROM   datas
                              WHERE  code = 'AN4307SW'))
Run Code Online (Sandbox Code Playgroud)

它返回如下结果:

DOWNLOADURL               VERSION DESCRIPTION RELEASEDATE    TYPE
/artifacts/download.txt   2.0     images       25/6/12      download.txt
Run Code Online (Sandbox Code Playgroud)

Type列中,我正在确定文件的名称.我需要在列中获取文件名的文件扩展名Type.我怎样才能做到这一点?

例子:

TYPE
.txt
.pdf
.xls
Run Code Online (Sandbox Code Playgroud)

mysql sql dao subquery

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

Java新手 - 什么是JPA和DAO?

我是Java的新手,我正在尝试使用servlet创建一个Web项目.我想查询我的数据库,但我想我不了解JPA和DAO的一切.

我被教导过这样做:

  • 创建类com.package.entity.User(从我的数据库生成)
  • 创建接口com.package.dao.UserDao
  • 创建实现UserDao的类com.package.dao.jpa.JpaUserDao
  • 使用类似方法创建EJB com.package.service.UserService public List<User> findAll()

我听说没有必要用JPA创建一个DAO接口,但我完全迷失了,我根本不了解我应该做什么或者EJB是什么.我只是想找到我的数据库中的所有用户,并按照Java的良好实践显示他们的名字.

对于我的servlet和JSP来说已经足够了.

你会推荐什么 ?

java dao ejb jpa

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

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

我正在实施一个基于Web服务的大学管理系统.该系统将某些课程添加到数据库中.下面是我正在使用的代码.

Course.java

public class Course {

    private String courseName;
    private String location;
    private String courseId;


       public String getCourseId()
               {
        return courseId;
            }

    public void setCourseId(String courseId) {
        this.courseId = courseId;
    }

    public String getCourseName() {
        return courseName;
    }

    public void setCourseName(String courseName) {
        this.courseName = courseName;
    }

        public String getLocation() {
        return location;
    }
    public void setLocation(String location) {
        this.location = location;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后另一个文件如下

CourseDaoImpl.java

public class CourseDaoImpl implements IDao {
   Connection conn = null;
   Statement stmt = null; …
Run Code Online (Sandbox Code Playgroud)

java junit dao web-services testcase

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

如何使用DaoAuthenticationProvider以编程方式使用Spring Security对用户进行身份验证

我想知道我在这里做错了什么来验证用户.我有一个应用程序,用户通过几个步骤来激活他们的帐户,这样做我想绕过登录表单并将它们直接带到他们的仪表板.

这是我的自动登录功能:

protected void automatedLogin(String username, String password, HttpServletRequest request) {

        try {
            // Must be called from request filtered by Spring Security, otherwise SecurityContextHolder is not updated
            CustomUserDetailsService udService = new CustomUserDetailsService(userDAO, request);
            UserDetails uDetails = udService.loadUserByUsername(username);
            UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(uDetails, password);
            token.setDetails(new WebAuthenticationDetails(request));
            DaoAuthenticationProvider authenticator = new DaoAuthenticationProvider();
            Authentication authentication = authenticator.authenticate(token);
            SecurityContextHolder.getContext().setAuthentication(authentication);
        } catch (Exception e) {
            e.printStackTrace();
            SecurityContextHolder.getContext().setAuthentication(null);
        }

    }
Run Code Online (Sandbox Code Playgroud)

我必须使用DaoAuthenticationProvider类作为我的身份验证提供程序.我已经验证我正在获取包含正确凭据,ID,权限角色等的UserDetails模型.

当它调用authenticate方法时,我会在DaoAuthenticationProvider类中的某个地方遇到Null Pointer:

org.springframework.security.authentication.dao.DaoAuthenticationProvider.retrieveUser(DaoAuthenticationProvider.java:109)org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider.authenticate上的org.springframework.security.authentication.AuthenticationServiceException(AbstractUserDetailsAuthenticationProvider.java:132 )在com.bosch.actions.BaseController.doAutoLogin(BaseController.java:659)...引起:org.springframework.security.authentication.dao.DaoAuthenticationProvider.retrieveUser(DaoAuthenticationProvider.java:101)中的java.lang.NullPointerException

我真的不确定什么是null,因为我没有可用的源代码.

编辑 我能够在这里找到源代码 - https://github.com/SpringSource/spring-security/blob/master/core/src/main/java/org/springframework/security/authentication/dao/DaoAuthenticationProvider.java

通过在对象上显式设置UserDetailsS​​ervice,我能够绕过Null指针:

authenticator.setUserDetailsService(udService);
Run Code Online (Sandbox Code Playgroud)

但是,当我知道提供的密码是正确的时,我得到了错误的凭证异常,因为我已经在代码中早先的UserDetails对象中的调试器中看到了它.

org.springframework.security.authentication.BadCredentialsException:org.springframework.security.authentication.dao.DaoAuthenticationProvider.additionalAuthenticationChecks(DaoAuthenticationProvider.java:87)中的错误凭据,位于org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider. Java的:149)

java authentication spring dao spring-security

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

如何使用DAO检测Yii中事务中的最后一个插入ID?

这是源代码,我需要检测ID(请参阅下面两个查询之间的标记位置).

$connection = Yii::app()->db;
$transaction=$connection->beginTransaction();
try {

    $q = "INSERT INTO `someTable1` .... ";      
    $connection->createCommand($q)->execute(); // Single Row Inserted

    // HERE!! How to get the last insert ID from query above

    $q = "INSERT INTO `someTable2` ....
          WHERE id = LAST_INSERT_ID_FROM_FIRST_QUERY ";
    $connection->createCommand($q)->execute();

    $transaction->commit();

} catch (Exception $e) {
    // react on exception   
    $trans->rollback();
} 
Run Code Online (Sandbox Code Playgroud)

最合适的方法是什么?

php dao transactions lastinsertid yii

8
推荐指数
1
解决办法
7276
查看次数

从另一个服务调用服务vs dao

我有用户和角色实体和服务,DAO层.我需要来自UserService的角色列表.

我应该从UserService使用哪一层?RoleService与RoleDAO的调用列表方法?哪一个是常用的,为什么?

java dao business-logic-layer layer

8
推荐指数
1
解决办法
4070
查看次数