1,更新操作对象
首先考虑如何将User插入操作建模为一个操作对象,可以扩展SqlUpdate为更新操作创建UserInsertOperation类
public class UserInsertOperation extends SqlUpdate{
public UserInsertOperation(DataSource dataSource){
this.setDataSource(dataSource);
this.setSql("insert into user values(?,?)");
this.declareParamter(new SqlParamters(Types.VARCHAR));
this.declareParamter(new SqlParamters(Types.VARCHAR));
compile();
}
public void perform(User user){
this.update(new Object[]{user.getUsername,user.getPassword()});
}
}
一旦更新操作对象进行了正确的初始化后,就可以调用update()方法,并以对象数组形式传入参数,为了更好地进行封装,避
免无效的参数,可以提供自定义的perform()方法,以便从User对象中提取参数,然后再IOC容器中声明它的实例
<bean id="UserInsertOperation"
class="com.kang.fei.dao.UserInsertOperation">
<constructor-arg ref="dataSource"/>
</bean>
一下Main类展示了如何用这个操作类插入数据
public class Main{
public static void main(String[] args){
UserInsertOperation operation = new UserInsertOperation(dataSource);
User user = new User("kang","fei");
operation.perform(user);
}
}
2,查询操作对象
对于查询操作对象,可以扩展MappingSqlQuery类,让查询和映射逻辑集中在一个类中,为了更好的进行封装,还应该编写定制的perform()方法,将查询参数打包在一个对象数组中,并强制转换返回类型
public class UserQueryOperation extends MappingSqlQuery{
public UserQueryOperation(DataSource dataSource){
setDataSource(dataSource);
setSql("select *from user where id=?");
declareParamter(new SqlParamter(Types.INT));
complie();
}
protected Object mapRow(ResultSet rs ,int rowNum)throws SQLException{
User user = new User();
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
return user;
}
public User perform(int id){
return (User)findObject(new Object[]{id});
}
}
然后在Spring Ioc容器中为这个操作对象声明一个实例
<bean id="userQueryOperaiton"
class="com.kang.fei.dao.UserQueryOperation">
<constructor-arg ref="dataSource"/>
</bean>
在Main类中,可以用该操作对象按照车牌号来查询车辆
public class Main{
public static void main(String[] args){
UserQueryOperation operation = (UserQueryOperation)context.getBean("userQueryOperation");
User user = operation.perform(2);
System.out.println("username: "+user.getUsername());
System.out.println("password: "+user.getPassword());
}
}
3,函数操作对象
SqlFunction操作对象类型用于查询单个值,例如User统计操作就可以通过SqlFunction进行建模,run()方法返回的结果类型为整形,如果想返回其他类型就必须调用runGeneric()方法.
public class UserCountOperation extends SqlFunction{
public UserCountOperation(DataSource dataSource){
setDataSource(dataSource);
setSql("select count(*) from user");
complie();
}
public int perform(){
return run();
}
}
然后再spring Ioc容器中为这个操作对象声明一个实例
<bean id="userCountOperaiton"
class="com.kang.fei.dao.UserCountOperation">
<constructor-arg ref="dataSource"/>
</bean>
以下Main代码测试
public class Main{
public static void main(String[] args){
UserCountOperation operation= (UserCountOperation)context.getBean("userCountOPeration");
int count = operation.perform();
System.out.println("count : "+count);
}
}
分享到:
相关推荐
本资源是一个完整的通过Servlet-Service-Dao-JdbcTemplate访问MySQL数据库的JavaWeb Project,可以直接导入到Eclipse中进行调试运行,注意默认编译器是JDK1.8。
标题 "jdbcTemplate-spring对jdbc的支持" 涉及到的是Spring框架中的一个核心组件——JdbcTemplate,它是Spring对Java数据库连接(JDBC)的一种封装,用于简化数据库操作。JdbcTemplate提供了一种模板方法模式,使得...
本资源是一个完整的通过Servlet-Service-Dao-JdbcTemplate访问MySQL数据库的JavaWeb Project,可以直接导入到MyEclipse中进行调试运行,注意默认编译器是JDK1.6。
在这个实例工程中,我们将深入探讨Spring JdbcTemplate的基本使用、优势以及常见操作。 一、Spring JdbcTemplate简介 Spring JdbcTemplate的出现是为了弥补原生JDBC在编码上的繁琐,它通过模板方法模式,将SQL执行...
SpringJdbcTemplate将底层JDBC抛出的异常转换为Spring的`DataAccessException`,这是一个运行时异常,提供了更友好的错误信息和更方便的异常处理方式。 7. **使用示例** 使用SpringJdbcTemplate进行数据库操作...
在项目中使用"spring-jdbc jar包",开发者需要配置DataSource,并根据需求选择使用JdbcTemplate或其他辅助类。在编写SQL时,可以使用预编译的PreparedStatement来防止SQL注入攻击。此外,还可以利用Spring的AOP...
1. 在项目中引入JdbcTemplate所需要的依赖,如spring-jdbc、spring-tx等。 2. 在Spring的配置文件中配置数据源和JdbcTemplate对象,通常会用到数据库连接池,比如Apache的DBCP或C3P0。 3. 创建对应的Service类和DAO...
总的来说,`spring-jdbc-4.2.4.RELEASE.jar`和`spring-tx-4.2.4.RELEASE.jar`这两个jar包是Spring框架中处理数据库交互和事务管理的核心组件。`jdbcTemplate`作为Spring JDBC的核心工具,极大地简化了数据库访问,而...
本教程将深入探讨如何使用基于注解的Spring JdbcTemplate进行数据库操作,特别适合初学者入门学习。 ### 1. Spring JdbcTemplate简介 Spring JdbcTemplate提供了一个面向对象的接口,用于执行SQL查询、更新和存储...
在本文中,我们将讨论如何使用 Spring JdbcTemplate 调用 Oracle 存储过程来实现 CRUD(Create、Read、Update、Delete)操作。我们将首先编写 Oracle 存储过程,然后编写 Java 代码使用 Spring JdbcTemplate 调用...
spring-jdbc-5.2.7.RELEASE.jar,JdbcTemplate所需要的jar包。
在实际开发中,`spring-jdbc-4.2.xsd`的使用方式通常是将其引入到Spring的配置文件中,例如: ```xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...
在Spring框架中,JdbcTemplate是用于简化数据库操作的重要工具,它是Spring JDBC模块的一部分。通过使用JdbcTemplate,开发者可以避免编写大量的重复代码,如手动管理连接、处理结果集等,从而专注于业务逻辑。本文...
3. `spring-jdbc-5.0.0.RELEASE.jar`:包含Spring对JDBC的支持,包括JDBCTemplate和DataSourceTransactionManager,它们是与数据库交互和管理事务的关键。 4. `spring-tx-5.0.0.RELEASE.jar`:提供了事务管理功能,...
3. **ORM支持**: 尽管不如JPA(Java Persistence API)强大,但Spring Data JDBC仍然提供了对象关系映射的能力,将Java对象与数据库表关联。 4. **简化事务管理**: Spring的事务管理器使得事务控制变得简单,无需...
标题中的“一个简单易用可对象操作基于SpringJdbcTemplate的JDBC帮助包”指的是一个专为简化Java开发中数据库操作而设计的工具包。这个工具包利用了Spring的JdbcTemplate,它是一个轻量级的ORM(对象关系映射)框架...
Spring JDBC Template被用来简化数据库操作,它提供了一种模板方法模式,将SQL执行、结果集处理等细节进行了封装,使得开发者只需要关注SQL语句和处理结果即可。例如,登录验证可能涉及查询用户表,查找与输入用户名...
<artifactId>spring-jdbc <version>5.x.x.RELEASE</version> <!-- 使用对应Spring版本 --> ``` 然后,配置Spring JDBC。在Spring的配置文件(如applicationContext.xml)中,我们需要定义DataSource和...
6. **Exception Translation**: Spring-JDBC将JDBC抛出的SQLException转换为Spring的DataAccessException层次结构,这使得异常处理更加一致,并且提供了更好的错误信息。 7. **Batch Updates**: 支持批量SQL更新...
在Spring框架中,JdbcTemplate是用于简化数据库操作的重要组件,特别是在处理JDBC(Java Database Connectivity)时。在Spring4中,JdbcTemplate提供了事务管理的功能,使得开发者能够更好地控制数据库操作的原子性...