`

spring JdbcTemplate、NamedParameterJdbcTemplate

 
阅读更多
  • JdbcTemplate 配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd">

	<context:component-scan base-package="com.spring"></context:component-scan>

	<!-- 1,引入外部contextSchema命名空间; 2,导入外部配置文件 -->
	<context:property-placeholder location="classpath:./jdbc.properties" />
	
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
		destroy-method="close">
		<property name="driverClass" value="${jdbc.driverClassName}" />
		<property name="jdbcUrl" value="${jdbc.url}" />
		<property name="user" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
	</bean>

	<!-- 创建spring jdbcTemplate -->
 	 <bean class="org.springframework.jdbc.core.JdbcTemplate" id="jdbcTemplate">
		<property name="dataSource" ref="dataSource"></property>
	</bean>  

</beans>

 dataSource properties文件

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.username=admin
jdbc.password=admin
jdbc.url=jdbc:mysql://localhost:3306/springtest

 Repository类

@Repository
public class StudentRepository implements BasicRepository<Student> {
	
	@Autowired
	JdbcTemplate jdbcTemplate;

	
	public int save(Student t) {
		String sql = "insert into student values(null,?,?)";
		Object[] params = new Object[]{t.getName(),t.getAge()};
		
		return jdbcTemplate.update(sql,params);
	}

	public int update(Student t) {
		String sql = "update student set name=?,age=? where id=?";
		Object[] params = new Object[]{t.getName(),t.getAge(),t.getId()};
		
		return jdbcTemplate.update(sql,params);
	}

	public int delete(int id) {
		String sql = "delete from student where id=?";
		Object[] params = new Object[]{id};
		
		return jdbcTemplate.update(sql,params);
	}

	public List<Student> findAll() {
		String sql = "select * from student";
		final List<Student> studentList = new ArrayList<Student>();
		jdbcTemplate.query(sql, new RowCallbackHandler(){

			public void processRow(ResultSet rs) throws SQLException {
				Student student = new Student();
				student.setId(rs.getInt("id"));
				student.setName(rs.getString("name"));
				student.setAge(rs.getInt("age"));
				studentList.add(student);
			}
			
		});
		return studentList;
	}


}

 这样JdbcTemplate配置就ok了。

 

NamedParameterJdbcTemplate配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd">

	<context:component-scan base-package="com.spring"></context:component-scan>

	<!-- 1,引入外部contextSchema命名空间; 2,导入外部配置文件 -->
	<context:property-placeholder location="classpath:./jdbc.properties" />
	
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
		destroy-method="close">
		<property name="driverClass" value="${jdbc.driverClassName}" />
		<property name="jdbcUrl" value="${jdbc.url}" />
		<property name="user" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
	</bean>
	
	<!-- 创建spring NamedParameter JdbcTemplate -->
	<bean class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate" id="namedParameterJdbcTemplate">
		<constructor-arg name="dataSource" ref="dataSource"/>
	</bean>

</beans>

 Repository类:

@Repository("studentRepository")
public class StudentRepositoryByNamed implements BasicRepository<Student>{
	
	@Autowired
	NamedParameterJdbcTemplate namedParameterJdbcTemplate;
	
	public int save(Student t) {
		String sql = "insert into student values(null,:name,:age)";
		MapSqlParameterSource sps = new MapSqlParameterSource();
		sps.addValue("name", t.getName());
		sps.addValue("age", t.getAge());
		
		return namedParameterJdbcTemplate.update(sql,sps);
	}

	public int update(Student t) {
		String sql = "update student set name=:name,age=:age where id=:id";
		MapSqlParameterSource sps = new MapSqlParameterSource();
		sps.addValue("name",t.getName());
		sps.addValue("age", t.getAge());
		sps.addValue("id", t.getId());
		return namedParameterJdbcTemplate.update(sql,sps);
	}

	public int delete(int id) {
		String sql = "delete from student where id=:id";
		
		MapSqlParameterSource sps = new MapSqlParameterSource();
		sps.addValue("id", id);
		
		return namedParameterJdbcTemplate.update(sql,sps);
	}
	
	public Student getStudent(int id){
		String sql = "select * from student where id=:id";
		MapSqlParameterSource sps = new MapSqlParameterSource();
		sps.addValue("id",id);
		final Student student = new Student();
		namedParameterJdbcTemplate.query(sql, sps,new RowCallbackHandler(){

			public void processRow(ResultSet rs) throws SQLException {
				
				student.setId(rs.getInt("id"));
				student.setName(rs.getString("name"));
				student.setAge(rs.getInt("age"));
			}
			
		});
		return student;
	}

	public List<Student> findAll() {
		String sql = "select * from student";
		final List<Student> studentList = new ArrayList<Student>();
		namedParameterJdbcTemplate.query(sql, new RowCallbackHandler(){

			public void processRow(ResultSet rs) throws SQLException {
				Student student = new Student();
				student.setId(rs.getInt("id"));
				student.setName(rs.getString("name"));
				student.setAge(rs.getInt("age"));
				studentList.add(student);
			}
			
		});
		return studentList;
	}
}

 

分享到:
评论

相关推荐

    Spring SpringMvc JdbcTemplate NamedParameterJdbcTemplate

    标题 "Spring SpringMvc JdbcTemplate NamedParameterJdbcTemplate" 涉及到的是Java开发中的关键框架——Spring,以及它在数据库操作中的两个重要组件:JdbcTemplate和NamedParameterJdbcTemplate。这两个工具是...

    Spring JdbcTemplate例子

    Spring JdbcTemplate是Spring框架中的一个核心组件,主要用来简化数据库操作。它提供了一种模板方法设计模式,将SQL语句的执行与结果处理进行了抽象,使得开发者可以更加专注于业务逻辑,而无需关心底层数据访问的...

    使用Spring的NamedParameterJdbcTemplate完成DAO操作

    本文将深入探讨如何使用Spring的`NamedParameterJdbcTemplate`类来实现高效的DAO(Data Access Object)操作。`NamedParameterJdbcTemplate`是Spring JDBC模块中的一个强大工具,它允许我们以更加清晰、安全的方式...

    Spring-JdbcTemplate

    **Spring-JdbcTemplate 知识详解** `Spring-JdbcTemplate` 是 Spring 框架中的一个核心模块,主要用于简化数据库操作,提供了强大的数据访问功能。它通过模板方法设计模式封装了 SQL 的执行,使得开发者无需直接与 ...

    JDBCTemplate+JavaPOJO实现通用DAO

    6. **定制化操作**:虽然JDBCTemplate提供了很多通用功能,但有时仍需编写自定义SQL,这时可以使用`NamedParameterJdbcTemplate`,它支持参数化的SQL,使代码更加清晰。 7. **异常处理**:JDBCTemplate会自动处理...

    SpringJDBC.rar_SpringJDBC_jdbctemplate_jdbctemplate spring

    Spring JDBC通过提供JdbcTemplate和SimpleJdbcTemplate等工具类,帮助开发者以更安全、更易于管理的方式与数据库进行交互,降低了传统JDBC代码的复杂性。下面我们将详细探讨Spring JDBC的核心概念、工作原理以及如何...

    Spring:JdbcTemplate使用指南

    **Spring JdbcTemplate 使用指南** Spring框架中的JdbcTemplate是数据库操作的核心组件之一,它提供了一种简单、安全的方式来执行SQL查询和更新,而无需手动管理数据库连接。本指南将深入探讨JdbcTemplate的用法,...

    SpringBatchExample:描述使用JdbcTemplate和NamedParameterJdbcTemplate的Spring批处理更新操作

    Spring JDBC Batch更新示例 Example application describes how to perform batch operation with spring JdbcTemplate class.#技术堆栈。 1. Spring核心jdbc模块。 2. H2嵌入式数据库。 3. Gradle构建脚本。 4....

    spring自带的jdbcTemplate查询、插入预编译使用

    在Spring框架中,`jdbcTemplate`是一个非常重要的组件,它为数据库操作提供了便捷且安全的API,降低了SQL注入的风险。本篇文章将详细讲解`jdbcTemplate`的预编译使用,以及如何通过回调方法进行定制化的数据处理。 ...

    spring内置jdbctemplate使用demo

    在数据访问层,Spring 提供了多种方式来操作数据库,其中 `JdbcTemplate` 是一个简单且强大的工具,它封装了 JDBC API,使得数据库操作变得更加简洁和安全。`JdbcTemplate` 减少了手写 SQL 和处理结果集的繁琐工作,...

    打印JdbcTemplate执行sql

    其中,`JdbcTemplate`是Spring JDBC模块的核心组件,为数据库操作提供了简单、灵活的API。这篇博客文章的标题"打印JdbcTemplate执行sql"主要涉及如何在使用`JdbcTemplate`时,追踪并打印出执行的SQL语句,这对于调试...

    spring JDbc

    在本实例中,我们将深入探讨Spring JDBC的使用,并以`SpringJdbcTemplate`为例来阐述其主要功能和优势。 首先,Spring JDBC通过`JdbcTemplate`和`NamedParameterJdbcTemplate`类提供了强大的数据库访问功能。`...

    JdbcTemplate基本使用

    JdbcTemplate是Spring框架中用于简化JDBC操作的工具类,它提供了一种更安全、更易用的方式来执行数据库操作,避免了手动管理数据库资源和处理潜在的资源泄露问题。通过JdbcTemplate,开发者可以专注于SQL语句的编写...

    _Spring_使用 JdbcTemplate和JdbcDaoSupport.rar

    在Spring框架中,`JdbcTemplate`和`JdbcDaoSupport`是两个重要的组件,它们用于简化Java数据库连接(JDBC)的操作,提高了代码的可读性和可维护性。本篇文章将详细阐述这两个类的核心概念、使用场景以及如何在实际...

    第十二章 Spring4 支持参数命名的JdbcTemplate

    在Spring 4中,JdbcTemplate引入了`NamedParameterJdbcTemplate`类,它扩展了`JdbcTemplate`,并提供了对命名参数的支持。以下是一些关键方法: - `query(String sql, Map, Object&gt; params, RowMapper&lt;T&gt; rowMapper...

    Spring JDBC应用实例讲解

    首先,我们需要理解Spring JDBC是如何通过JdbcTemplate和NamedParameterJdbcTemplate这两个主要工具来封装JDBC操作的。 **1. JdbcTemplate** JdbcTemplate是Spring JDBC的基础,它提供了模板方法来处理常见的JDBC...

    Spring mvc、 Spring、 Spring jdbc 整合 demo

    - 在数据访问层中,使用Spring JDBC的JdbcTemplate或NamedParameterJdbcTemplate来执行SQL语句。 - 在Service层,通过AOP实现事务管理,确保数据一致性。 - 编写Controller,接收并处理HTTP请求,调用Service层...

    Spring-JDBC整合-MySQL8、java8版本

    Spring JDBC 提供了 JdbcTemplate 和 NamedParameterJdbcTemplate,这两个工具类极大地减少了我们处理数据库连接、事务管理、结果集映射等工作所需的手动编码。 首先,集成Spring JDBC需要引入相应的jar包。在现代...

    Spring与JDBC整合

    Spring提供了JdbcTemplate和NamedParameterJdbcTemplate两个核心类,它们是对JDBC的抽象和封装,消除了大量的模板代码和资源管理。JdbcTemplate提供了一种基于占位符的SQL执行方式,而NamedParameterJdbcTemplate则...

Global site tag (gtag.js) - Google Analytics