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 DataSource
and 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 findObject
with 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 是一个在Java开发领域,特别是Spring框架中曾经广泛使用的安全组件,全称为Acegi Security。这个系统为Spring应用程序提供了全面的安全管理解决方案,包括身份验证、授权、会话管理以及安全事件处理等功能。...
包含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-...
在《实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架.pdf》中,可能会详细讲解如何配置和使用Acegi。以下是一些关键步骤: 1. **添加依赖**:首先,在项目中引入Acegi的依赖库,通常是通过Maven或...
ehCache在acegi中的应用 ehCache是一款广泛使用的开源Java缓存系统,它提供了一种高效、快速的方式来存储和检索数据,特别是在高并发和大数据量的场景下。而在acegi安全框架(现已被Spring Security替代)中,...
2. **授权(Authorization)**:在Acegi中,授权是指确定一个已认证的用户是否有权限访问特定的资源或执行某些操作。它可以基于角色、URL、方法或者更复杂的规则进行控制。 3. **会话管理(Session Management)**...
总的来说,Acegi Security(Spring Security)是Spring生态中的重要组成部分,它提供了一种高效且灵活的方式来管理和保护应用程序的安全,确保用户访问控制的准确性和严密性,从而保障系统的稳定运行。通过深入理解...
尽管Acegi已经被Spring Security(自Spring 2.0版本起)所取代,但它在许多旧项目中仍然被广泛使用,因此理解其工作原理和特性仍然是必要的。 1. **身份验证**:Acegi 提供了多种身份验证机制,包括基于密码的认证...
在`YourUserDetailsService`中,你需要实现`UserDetailsService`接口,提供一个方法`loadUserByUsername(String username)`,该方法会由Acegi在认证过程中调用,用于查找指定用户名的用户信息。 最后,为了使Basic...
在本文中,我们将深入探讨Spring Acegi的核心概念、功能和使用方法。 首先,Acegi的主要目标是保护Spring应用免受非法访问,它提供了丰富的功能来实现用户认证、会话管理、权限控制以及安全相关的异常处理。Acegi的...
Acegi是一个专门为SpringFramework应用提供安全机制的开放源代码项目,全称为Acegi Security System for Spring,当前版本为 0.8.3。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和...
Spring Acegi权限控制是Spring框架中用于实现Web应用安全的一种解决方案。Acegi Security(现已被Spring Security替代)是一个功能强大的安全框架,它主要解决了认证(Authentication)和授权(Authorization)这两...
Acegi Security是一个专门为Spring框架设计的权限控制框架,旨在为基于J2EE的企业级应用程序提供全面的安全服务。这个框架解决了J2EE规范中安全性配置不便于移植的问题,使得应用程序的安全设置能够在不同服务器环境...
这个"spring acegi 使用工程demo"显然是一个示例项目,旨在帮助开发者理解和实践如何在Spring应用中集成和使用Acegi安全框架。 首先,Acegi是Spring Security的前身,后来被Spring Security所取代,但它的概念和...
权限控制技术的解释,acegi中文参考手册
在本文中,我们将深入探讨 Acegi 的基本概念、如何设置以及它如何与 Spring 框架集成。 首先,让我们了解 Acegi 的核心功能。Acegi 提供了一套全面的安全机制,包括但不限于: 1. 认证(Authentication):确认...
本教程将引导初学者逐步了解如何在实际项目中应用Acegi安全框架,以便为你的Web应用提供强大的身份验证和授权功能。 首先,让我们理解Acegi的基础概念。Acegi的核心组件包括SecurityContext、Authentication和...
8. **记住我(Remember Me)**:Acegi还提供了一种“记住我”服务,允许用户在一段时间内无须重新登录,增强了用户体验。 在实际应用中,这个简单的Acegi实例可能包含以下步骤: 1. 创建Spring配置文件,引入Acegi...
2. 业务类方法的访问控制:Acegi能够控制Spring容器中Bean的方法调用,使得只有特定用户或角色可以执行某些操作。这扩展到了对业务逻辑的细粒度控制,例如限制谁可以调用添加用户的方法。 3. 领域对象的访问控制:...
Acegi安全系统,是一个用于Spring Framework的安全框架,能够和目前流行的Web... 在Acegi安全系统中,需要被认证的用户,系统或代理称为"Principal"。Acegi安全系统和其他的安全系统不同,它并没有角色和用户组的概念。