`

Acegi中JdbcDaoImpl内MappingSqlQuery的讲解

 
阅读更多

MappingSqlQuery is a reusable query in which concrete subclasses must implement the abstractmapRow(..) method to convert each row of the supplied ResultSet into an object of the type specified. The following example shows a custom query that maps the data from the t_actor relation to an instance of the Actor class.

public class ActorMappingQuery extends MappingSqlQuery<Actor> {
        public ActorMappingQuery(DataSource ds) { 
                  super(ds, "select id,first_name, last_name from t_actor           where id = ?");
                  super.declareParameter(new SqlParameter("id",    Types.INTEGER)); 
                  compile();
 } 

@Override protected Actor mapRow(ResultSet rs, int rowNumber) throws SQLException { 
                  Actor actor = new Actor(); 
                  actor.setId(rs.getLong("id"));         
                  actor.setFirstName(rs.getString("first_name"));  
                  actor.setLastName(rs.getString("last_name")); 
                  return actor; 
} 
}
 

 

The class extends MappingSqlQuery parameterized with the Actor type. The constructor for this customer query takes the DataSource as the only parameter. In this constructor you call the constructor on the superclass with the DataSourceand the SQL that should be executed to retrieve the rows for this query. This SQL will be used to create aPreparedStatement so it may contain place holders for any parameters to be passed in during execution.You must declare each parameter using the declareParameter method passing in an SqlParameter. The SqlParameter takes a name and the JDBC type as defined in java.sql.Types. After you define all parameters, you call thecompile() method so the statement can be prepared and later executed. This class is thread-safe after it is compiled, so as long as these instances are created when the DAO is initialized they can be kept as instance variables and be reused.

private ActorMappingQuery actorMappingQuery;

@Autowired public void setDataSource(DataSource dataSource) {        
          this.actorMappingQuery = new ActorMappingQuery(dataSource);
} 
public Customer getCustomer(Long id) {
           return actorMappingQuery.findObject(id); 
}
 

The method in this example retrieves the customer with the id that is passed in as the only parameter. Since we only want one object returned we simply call the convenience method findObjectwith the id as parameter. If we had instead a query that returned a list of objects and took additional parameters then we would use one of the execute methods that takes an array of parameter values passed in as varargs.

 

public List<Actor> searchForActors(int age, String namePattern) {       
          List<Actor> actors = actorSearchMappingQuery.execute(age, namePattern);
          return actors; 
}
 
分享到:
评论

相关推荐

    acegi

    Acegi 是一个在Java开发领域,特别是Spring框架中曾经广泛使用的安全组件,全称为Acegi Security。这个系统为Spring应用程序提供了全面的安全管理解决方案,包括身份验证、授权、会话管理以及安全事件处理等功能。...

    acegisecurity内所有jar包

    包含acegi-security-1.0.7.jar,acegi-security-1.0.7-sources.jar,acegi-security-cas-1.0.7.jar,acegi-security-cas-1.0.7-sources.jar,acegi-security-catalina-1.0.7.jar,acegi-security-catalina-1.0.7-...

    基于java的ACEGI

    在《实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架.pdf》中,可能会详细讲解如何配置和使用Acegi。以下是一些关键步骤: 1. **添加依赖**:首先,在项目中引入Acegi的依赖库,通常是通过Maven或...

    ehCache在acegi中的应用

    ehCache在acegi中的应用 ehCache是一款广泛使用的开源Java缓存系统,它提供了一种高效、快速的方式来存储和检索数据,特别是在高并发和大数据量的场景下。而在acegi安全框架(现已被Spring Security替代)中,...

    Acegi例子代码+一个很好的学习Acegi的网址

    2. **授权(Authorization)**:在Acegi中,授权是指确定一个已认证的用户是否有权限访问特定的资源或执行某些操作。它可以基于角色、URL、方法或者更复杂的规则进行控制。 3. **会话管理(Session Management)**...

    Acegi框架介绍 acegi安全与认证

    总的来说,Acegi Security(Spring Security)是Spring生态中的重要组成部分,它提供了一种高效且灵活的方式来管理和保护应用程序的安全,确保用户访问控制的准确性和严密性,从而保障系统的稳定运行。通过深入理解...

    Acegi中文参考手册

    尽管Acegi已经被Spring Security(自Spring 2.0版本起)所取代,但它在许多旧项目中仍然被广泛使用,因此理解其工作原理和特性仍然是必要的。 1. **身份验证**:Acegi 提供了多种身份验证机制,包括基于密码的认证...

    acegi basic认证具体demo

    在`YourUserDetailsService`中,你需要实现`UserDetailsService`接口,提供一个方法`loadUserByUsername(String username)`,该方法会由Acegi在认证过程中调用,用于查找指定用户名的用户信息。 最后,为了使Basic...

    spring acegi 详细文档

    在本文中,我们将深入探讨Spring Acegi的核心概念、功能和使用方法。 首先,Acegi的主要目标是保护Spring应用免受非法访问,它提供了丰富的功能来实现用户认证、会话管理、权限控制以及安全相关的异常处理。Acegi的...

    实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架

    Acegi是一个专门为SpringFramework应用提供安全机制的开放源代码项目,全称为Acegi Security System for Spring,当前版本为 0.8.3。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和...

    Spring Acegi权限控制

    Spring Acegi权限控制是Spring框架中用于实现Web应用安全的一种解决方案。Acegi Security(现已被Spring Security替代)是一个功能强大的安全框架,它主要解决了认证(Authentication)和授权(Authorization)这两...

    ACEGI

    Acegi Security是一个专门为Spring框架设计的权限控制框架,旨在为基于J2EE的企业级应用程序提供全面的安全服务。这个框架解决了J2EE规范中安全性配置不便于移植的问题,使得应用程序的安全设置能够在不同服务器环境...

    spring acegi 使用工程demo

    这个"spring acegi 使用工程demo"显然是一个示例项目,旨在帮助开发者理解和实践如何在Spring应用中集成和使用Acegi安全框架。 首先,Acegi是Spring Security的前身,后来被Spring Security所取代,但它的概念和...

    acegi中文参考手册.doc

    权限控制技术的解释,acegi中文参考手册

    Acegi学习笔记(JAVA系统安全编程时用到)

    在本文中,我们将深入探讨 Acegi 的基本概念、如何设置以及它如何与 Spring 框架集成。 首先,让我们了解 Acegi 的核心功能。Acegi 提供了一套全面的安全机制,包括但不限于: 1. 认证(Authentication):确认...

    菜鸟-手把手教你把Acegi应用到实际项目中(1.2)

    本教程将引导初学者逐步了解如何在实际项目中应用Acegi安全框架,以便为你的Web应用提供强大的身份验证和授权功能。 首先,让我们理解Acegi的基础概念。Acegi的核心组件包括SecurityContext、Authentication和...

    spring Acegi例子,很简单的一个acegi实例,容易理解

    8. **记住我(Remember Me)**:Acegi还提供了一种“记住我”服务,允许用户在一段时间内无须重新登录,增强了用户体验。 在实际应用中,这个简单的Acegi实例可能包含以下步骤: 1. 创建Spring配置文件,引入Acegi...

    Acegi-spring安全框架

    2. 业务类方法的访问控制:Acegi能够控制Spring容器中Bean的方法调用,使得只有特定用户或角色可以执行某些操作。这扩展到了对业务逻辑的细粒度控制,例如限制谁可以调用添加用户的方法。 3. 领域对象的访问控制:...

    acegi使用说明acegi原理及如何与spring、hibernate结合

    Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web... 在Acegi安全系统中,需要被认证的用户,系统或代理称为"Principal"。Acegi安全系统和其他的安全系统不同,它并没有角色和用户组的概念。

Global site tag (gtag.js) - Google Analytics