`
韩悠悠
  • 浏览: 839059 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

使用spring的jdbcTemplate-----将JDBC操作建模为细粒度的对象

阅读更多

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);
	}
}

 

分享到:
评论

相关推荐

    在Java的Servlet中使用Spring JdbcTemplate-Eclipse版

    本资源是一个完整的通过Servlet-Service-Dao-JdbcTemplate访问MySQL数据库的JavaWeb Project,可以直接导入到Eclipse中进行调试运行,注意默认编译器是JDK1.8。

    jdbcTemplate-spring对jdbc的支持

    标题 "jdbcTemplate-spring对jdbc的支持" 涉及到的是Spring框架中的一个核心组件——JdbcTemplate,它是Spring对Java数据库连接(JDBC)的一种封装,用于简化数据库操作。JdbcTemplate提供了一种模板方法模式,使得...

    在Java的Servlet中使用Spring JdbcTemplate-MyEclipse版.rar

    本资源是一个完整的通过Servlet-Service-Dao-JdbcTemplate访问MySQL数据库的JavaWeb Project,可以直接导入到MyEclipse中进行调试运行,注意默认编译器是JDK1.6。

    spring-jdbcTemplate实例工程

    在这个实例工程中,我们将深入探讨Spring JdbcTemplate的基本使用、优势以及常见操作。 一、Spring JdbcTemplate简介 Spring JdbcTemplate的出现是为了弥补原生JDBC在编码上的繁琐,它通过模板方法模式,将SQL执行...

    SpringJdbcTemplate封装工具类

    SpringJdbcTemplate将底层JDBC抛出的异常转换为Spring的`DataAccessException`,这是一个运行时异常,提供了更友好的错误信息和更方便的异常处理方式。 7. **使用示例** 使用SpringJdbcTemplate进行数据库操作...

    spring-jdbc jar包.rar

    在项目中使用"spring-jdbc jar包",开发者需要配置DataSource,并根据需求选择使用JdbcTemplate或其他辅助类。在编写SQL时,可以使用预编译的PreparedStatement来防止SQL注入攻击。此外,还可以利用Spring的AOP...

    Spring--JdbcTemplate.pdf

    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,jdbcTemplate使用的jar包

    总的来说,`spring-jdbc-4.2.4.RELEASE.jar`和`spring-tx-4.2.4.RELEASE.jar`这两个jar包是Spring框架中处理数据库交互和事务管理的核心组件。`jdbcTemplate`作为Spring JDBC的核心工具,极大地简化了数据库访问,而...

    基于注解的Spring JdbcTemplate

    本教程将深入探讨如何使用基于注解的Spring JdbcTemplate进行数据库操作,特别适合初学者入门学习。 ### 1. Spring JdbcTemplate简介 Spring JdbcTemplate提供了一个面向对象的接口,用于执行SQL查询、更新和存储...

    Spring JdbcTemplate调用Oracle存储过程实现CRUD

    在本文中,我们将讨论如何使用 Spring JdbcTemplate 调用 Oracle 存储过程来实现 CRUD(Create、Read、Update、Delete)操作。我们将首先编写 Oracle 存储过程,然后编写 Java 代码使用 Spring JdbcTemplate 调用...

    spring-jdbc-5.2.7.RELEASE.jar;JdbcTemplate

    spring-jdbc-5.2.7.RELEASE.jar,JdbcTemplate所需要的jar包。

    spring-jdbc-4.2.xsd.zip

    在实际开发中,`spring-jdbc-4.2.xsd`的使用方式通常是将其引入到Spring的配置文件中,例如: ```xml &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...

    Spring JDBCTemplate连接池jar包

    3. `spring-jdbc-5.0.0.RELEASE.jar`:包含Spring对JDBC的支持,包括JDBCTemplate和DataSourceTransactionManager,它们是与数据库交互和管理事务的关键。 4. `spring-tx-5.0.0.RELEASE.jar`:提供了事务管理功能,...

    使用Spring JDBCTemplate进行增删改查curd操作

    在Spring框架中,JdbcTemplate是用于简化数据库操作的重要工具,它是Spring JDBC模块的一部分。通过使用JdbcTemplate,开发者可以避免编写大量的重复代码,如手动管理连接、处理结果集等,从而专注于业务逻辑。本文...

    Spring Data JDBC与JDBC的区别

    3. **ORM支持**: 尽管不如JPA(Java Persistence API)强大,但Spring Data JDBC仍然提供了对象关系映射的能力,将Java对象与数据库表关联。 4. **简化事务管理**: Spring的事务管理器使得事务控制变得简单,无需...

    一个简单易用可对象操作基于SpringJdbcTemplate的JDBC帮助包

    标题中的“一个简单易用可对象操作基于SpringJdbcTemplate的JDBC帮助包”指的是一个专为简化Java开发中数据库操作而设计的工具包。这个工具包利用了Spring的JdbcTemplate,它是一个轻量级的ORM(对象关系映射)框架...

    strut2+spring+springjdbctemplate做的简易登录系统

    Spring JDBC Template被用来简化数据库操作,它提供了一种模板方法模式,将SQL执行、结果集处理等细节进行了封装,使得开发者只需要关注SQL语句和处理结果即可。例如,登录验证可能涉及查询用户表,查找与输入用户名...

    Spring-JDBC整合-MySQL8、java8版本

    &lt;artifactId&gt;spring-jdbc &lt;version&gt;5.x.x.RELEASE&lt;/version&gt; &lt;!-- 使用对应Spring版本 --&gt; ``` 然后,配置Spring JDBC。在Spring的配置文件(如applicationContext.xml)中,我们需要定义DataSource和...

    Spring-JDBC,带一小例子

    6. **Exception Translation**: Spring-JDBC将JDBC抛出的SQLException转换为Spring的DataAccessException层次结构,这使得异常处理更加一致,并且提供了更好的错误信息。 7. **Batch Updates**: 支持批量SQL更新...

    Spring4--3.jdbcTemplate事务

    在Spring框架中,JdbcTemplate是用于简化数据库操作的重要组件,特别是在处理JDBC(Java Database Connectivity)时。在Spring4中,JdbcTemplate提供了事务管理的功能,使得开发者能够更好地控制数据库操作的原子性...

Global site tag (gtag.js) - Google Analytics