`

Spring JDBCTemplet 基本使用

 
阅读更多

一、查询,以及返回值得处理 

1 JDBCTeamplet查询出来的数据,如果名字和实体名字一样,则直接映射为实体 ,用BeanPropertyRowMapper

返回对象实体参数:

   ParameterizedBeanPropertyRowMapper.newInstance(Customer.class)

   new BeanPropertyRowMapper(Customer.class)  

 

 

 例如:根据条件查询,因为查询出来的字段与实体属性相同,则直接用BeanPropertyRowMapper返回即可

	public List<Person> findByCondition(Person person) {
 
		String sql = "select id,user_name userName ,age,tel from person where user_name like ?";
		RowMapper  rowMapper = new PersonRowMapper();
		return super.query(sql,  new Object[]{ "%"+person.getUserName()+"%"} ,   new BeanPropertyRowMapper( Person.class) );
	}

 2 如果返回的字段与实体的属性不一样,则需要自己定义一个实现RowMapper接口的类

如:1) 查询方法 

      

	public List<Person> findAll() {
		String sql = " select  id,user_name  ,age,tel  from person  ";
		RowMapper  rowMapper = new PersonRowMapper();
		//super.query(sql, new Object[]{areaId,"%"+schoolName+"%"} , new PersonRowMapper())
		return (List<Person>) super.query(sql,new PersonRowMapper());
	}

    2) 实现RowMapper接口的类 

	private static final class 	PersonRowMapper implements RowMapper{

		@Override
		public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
		 
			Person person = new Person();
			person.setAge( rs.getInt("age"));
			person.setId(rs.getInt("id"));
			person.setTel( rs.getInt("tel"));
			person.setUserName(rs.getString("user_name"));
			return person;
		}
		
		
	}

 

 3、查询返回自增的主键(Mysql测试)

  如:利用回调实现

	public Integer createReturnKey(final Person person) {
		
		final String sql = "INSERT INTO person (  user_name,age ,tel )VALUES(  ?,?,?)";
		
		KeyHolder keyHolder = new GeneratedKeyHolder();
		super.update(new PreparedStatementCreator (){
			@Override
			public PreparedStatement createPreparedStatement(Connection con)
					throws SQLException {
				PreparedStatement ps = con.prepareStatement(sql);
				ps.setObject(1, person.getUserName() );
				ps.setObject(2, person.getAge() );
				ps.setObject(3,  person.getTel() );
				return ps;
			}
		}, keyHolder) ; 
		return keyHolder.getKey().intValue();
	}

 

    2 增加返回插入条数

	public Integer create(Person person) {
		
		String sql = "INSERT INTO person (  user_name,age ,tel )VALUES(  ?,?,?)";
		Object[] obj = {person.getUserName(),person.getAge(),person.getTel()};
		return super.update(sql, obj );
		
	}

 二、删除 

  

	public Integer delete(int id ) {
		
		String sql = "delete from person where id=?";
		Object[] obj = {id};
		return super.update(sql, obj );
	}

 

三、更新 

	public Integer update(Person person) {
		String sql = "update person set user_name=?,age=? ,tel=? where id=? ";
		Object[] obj={person.getUserName(),person.getAge(),person.getTel(),person.getId() };
		return super.update(sql,  obj );
		
	}

 

 

分享到:
评论

相关推荐

    spring jdbcTemplet demo

    使用JDBCTemplate执行基本的CRUD操作如下: 1. **插入数据**: ```java jdbcTemplate.update("INSERT INTO users(name, email) VALUES (?, ?)", "Alice", "alice@example.com"); ``` 2. **更新数据**: ```java ...

    SpringBoot + Spring Security 基本使用及个性化登录配置详解

    SpringBoot + Spring Security 基本使用及个性化登录配置详解 Spring Security 是一个功能强大且灵活的安全框架,它提供了认证、授权、攻击防护等功能。SpringBoot 是一个基于 Spring 框架的框架,它提供了很多便捷...

    spring最基本jar

    这个“spring最基本jar”可能包含了Spring框架的基础组件,如Spring Core、Spring Beans、Spring AOP等,是学习和使用Spring框架的基础。理解并掌握这些知识点,能够帮助开发者有效地利用Spring框架构建高效、稳定的...

    SpringCloud基本框架+完整示例工程.rar

    这个压缩包内的“SpringCloud基本框架+完整示例工程”应该包含了一个运行的SpringCloud项目,开发者可以通过阅读源代码,理解上述各组件的配置和使用方式。同时,示例工程还可能包含了测试用例和日志输出,有助于...

    编码剖析Spring装配基本属性的原理

    本文将深入探讨Spring装配基本属性的原理,帮助你更好地理解如何在代码中使用和配置这些属性。 首先,Spring装配的基本方式有两种:XML装配和基于注解的装配。XML装配是早期版本Spring的主要装配方式,通过`&lt;bean&gt;`...

    spring安装基本包.zip

    总的来说,理解并掌握这些基本包的用法是学习和使用Spring的第一步。通过IoC和AOP,Spring能够帮助我们构建松耦合、易于维护的Java应用。在实际开发中,结合Spring Boot和其他相关技术,可以极大地提高开发效率和...

    spring操作的基本jar包

    在给定的压缩包文件中,包含了一系列Spring的核心组件,这些组件是进行基本Spring开发所必需的。以下是对这些jar包及其作用的详细解释: 1. **spring-context-4.2.3.RELEASE.jar**:这是Spring上下文模块的实现,...

    Spring Boot整合Spring Batch,实现批处理

    在Java开发领域,Spring Boot和Spring Batch的整合是构建高效...通过学习和实践这个示例,你不仅可以掌握如何在Spring Boot中使用Spring Batch,还能了解批处理的最佳实践,这对于处理大数据量的应用场景非常有价值。

    SpringSecurity的基本使用

    SpringSecurity的基本使用

    SpringBatch+Spring+Mybatis+MySql (spring batch 使用jar)

    Spring Batch是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统。Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问和利用企业级服务。Spring Batch可以提供...

    spring笔记,基本使用,基本概念

    ### 二、Spring 基本使用 1. **配置 Spring**:可以通过 XML 文件或注解方式进行配置。XML 配置中,`&lt;bean&gt;` 元素用于定义 Bean,`&lt;property&gt;` 用于注入依赖。注解配置则使用如 `@Configuration` 和 `@...

    SpringBlade开发手册基础版

    * 声明式服务调用:使用SpringBlade可以快速实现声明式服务调用,通过简单的步骤可以生成一个基本的微服务系统平台。 * Feign熔断机制:使用SpringBlade可以快速实现Feign熔断机制,通过简单的步骤可以生成一个基本...

    实验一 Springioc基本操作.docx

    1. 创建项目和配置文件:在使用 Spring IOC 之前,需要创建一个项目并配置相关的依赖项。pom.xml 文件是 Maven 项目的核心配置文件,用于管理项目的依赖项。在 pom.xml 文件中,需要添加 Spring IOC 相关的依赖项,...

    IDEA中使用Spring的简单入门(加小案例)

    在本文中,我们将深入探讨如何在IntelliJ IDEA(IDEA)中使用Spring框架进行简单的入门。Spring是一个广泛使用的开源Java框架,它为构建企业级应用程序提供了强大的支持,包括依赖注入、面向切面编程(AOP)、事务...

    spring-struts1-strust2-hibernate 核心包介绍

    这个jar文件包含Spring框架基本的核心工具类,Spring其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类。 (2) spring-beans.jar 这个jar文件是所有应用...

    spring 基本包 jar

    "spring 基本包 jar"指的是Spring框架的核心组件,这些组件构成了Spring应用程序的基础。下面我们将深入探讨Spring的基本包及其核心概念。 1. **IoC(Inversion of Control)容器**:Spring的核心是IoC容器,它负责...

    spring的一些基本知识及如何配置使用

    【Spring 框架基本知识及配置使用】 Spring 框架是Java开发中的一个核心框架,由Rod Johnson创建,最初源于《Expert One on One J2EE Design and Development》一书中的理念。Spring的主要目标是简化企业级应用的...

    使用 Spring Boot 快速构建 Spring 框架应用

    此外,Spring Boot 还提供了许多开箱即用的功能,适合生产环境使用,如性能监控、应用信息暴露和健康检查。这些功能使得开发者能更好地管理和维护应用程序的运行状态。 创建一个基本的 Spring Boot 应用非常简单。...

    Spring JdbcTemplate例子

    在本例中,我们将深入探讨Spring JdbcTemplate的工作原理、使用方式以及它的优点。 首先,JdbcTemplate的核心理念是通过预编译的SQL语句和参数绑定来防止SQL注入攻击,同时提供事务管理的支持。它提供了大量方法来...

    springsecurity基本的三个jar包

    标题提到的“springsecurity基本的三个jar包”是Spring Security的核心组件,它们构成了框架的基础架构,使得开发者能够实现各种安全需求。 1. **spring-security-core.jar**: 这个jar包包含了Spring Security的...

Global site tag (gtag.js) - Google Analytics