- 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" 涉及到的是Java开发中的关键框架——Spring,以及它在数据库操作中的两个重要组件:JdbcTemplate和NamedParameterJdbcTemplate。这两个工具是...
Spring JdbcTemplate是Spring框架中的一个核心组件,主要用来简化数据库操作。它提供了一种模板方法设计模式,将SQL语句的执行与结果处理进行了抽象,使得开发者可以更加专注于业务逻辑,而无需关心底层数据访问的...
本文将深入探讨如何使用Spring的`NamedParameterJdbcTemplate`类来实现高效的DAO(Data Access Object)操作。`NamedParameterJdbcTemplate`是Spring JDBC模块中的一个强大工具,它允许我们以更加清晰、安全的方式...
**Spring-JdbcTemplate 知识详解** `Spring-JdbcTemplate` 是 Spring 框架中的一个核心模块,主要用于简化数据库操作,提供了强大的数据访问功能。它通过模板方法设计模式封装了 SQL 的执行,使得开发者无需直接与 ...
6. **定制化操作**:虽然JDBCTemplate提供了很多通用功能,但有时仍需编写自定义SQL,这时可以使用`NamedParameterJdbcTemplate`,它支持参数化的SQL,使代码更加清晰。 7. **异常处理**:JDBCTemplate会自动处理...
Spring JDBC通过提供JdbcTemplate和SimpleJdbcTemplate等工具类,帮助开发者以更安全、更易于管理的方式与数据库进行交互,降低了传统JDBC代码的复杂性。下面我们将详细探讨Spring JDBC的核心概念、工作原理以及如何...
**Spring JdbcTemplate 使用指南** Spring框架中的JdbcTemplate是数据库操作的核心组件之一,它提供了一种简单、安全的方式来执行SQL查询和更新,而无需手动管理数据库连接。本指南将深入探讨JdbcTemplate的用法,...
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`是一个非常重要的组件,它为数据库操作提供了便捷且安全的API,降低了SQL注入的风险。本篇文章将详细讲解`jdbcTemplate`的预编译使用,以及如何通过回调方法进行定制化的数据处理。 ...
在数据访问层,Spring 提供了多种方式来操作数据库,其中 `JdbcTemplate` 是一个简单且强大的工具,它封装了 JDBC API,使得数据库操作变得更加简洁和安全。`JdbcTemplate` 减少了手写 SQL 和处理结果集的繁琐工作,...
其中,`JdbcTemplate`是Spring JDBC模块的核心组件,为数据库操作提供了简单、灵活的API。这篇博客文章的标题"打印JdbcTemplate执行sql"主要涉及如何在使用`JdbcTemplate`时,追踪并打印出执行的SQL语句,这对于调试...
在本实例中,我们将深入探讨Spring JDBC的使用,并以`SpringJdbcTemplate`为例来阐述其主要功能和优势。 首先,Spring JDBC通过`JdbcTemplate`和`NamedParameterJdbcTemplate`类提供了强大的数据库访问功能。`...
JdbcTemplate是Spring框架中用于简化JDBC操作的工具类,它提供了一种更安全、更易用的方式来执行数据库操作,避免了手动管理数据库资源和处理潜在的资源泄露问题。通过JdbcTemplate,开发者可以专注于SQL语句的编写...
在Spring框架中,`JdbcTemplate`和`JdbcDaoSupport`是两个重要的组件,它们用于简化Java数据库连接(JDBC)的操作,提高了代码的可读性和可维护性。本篇文章将详细阐述这两个类的核心概念、使用场景以及如何在实际...
在Spring 4中,JdbcTemplate引入了`NamedParameterJdbcTemplate`类,它扩展了`JdbcTemplate`,并提供了对命名参数的支持。以下是一些关键方法: - `query(String sql, Map, Object> params, RowMapper<T> rowMapper...
首先,我们需要理解Spring JDBC是如何通过JdbcTemplate和NamedParameterJdbcTemplate这两个主要工具来封装JDBC操作的。 **1. JdbcTemplate** JdbcTemplate是Spring JDBC的基础,它提供了模板方法来处理常见的JDBC...
- 在数据访问层中,使用Spring JDBC的JdbcTemplate或NamedParameterJdbcTemplate来执行SQL语句。 - 在Service层,通过AOP实现事务管理,确保数据一致性。 - 编写Controller,接收并处理HTTP请求,调用Service层...
Spring JDBC 提供了 JdbcTemplate 和 NamedParameterJdbcTemplate,这两个工具类极大地减少了我们处理数据库连接、事务管理、结果集映射等工作所需的手动编码。 首先,集成Spring JDBC需要引入相应的jar包。在现代...
Spring提供了JdbcTemplate和NamedParameterJdbcTemplate两个核心类,它们是对JDBC的抽象和封装,消除了大量的模板代码和资源管理。JdbcTemplate提供了一种基于占位符的SQL执行方式,而NamedParameterJdbcTemplate则...