`
xiaotian_ls
  • 浏览: 306053 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

spring jdbcTemplate 操作接口使用

阅读更多
import java.sql.CallableStatement;  
import java.sql.PreparedStatement;  
import java.sql.ResultSet;  
import java.sql.SQLException;  
import java.sql.Types;  
import java.util.List;  
 
import org.springframework.jdbc.core.BatchPreparedStatementSetter;  
import org.springframework.jdbc.core.CallableStatementCallback;  
import org.springframework.jdbc.core.JdbcTemplate;  
import org.springframework.jdbc.core.RowCallbackHandler;  
import org.springframework.jdbc.core.RowMapper;  
import org.springframework.jdbc.core.RowMapperResultReader;  
 
public class SpringJDBCDAO {  
 
    private class PersonRowMapper implements RowMapper {  
        public Object mapRow(ResultSet rs, int index) throws SQLException {  
            Person person = new Person();  
            person.setId(new Integer(rs.getInt("id")));  
            person.setFirstName(rs.getString("first_name"));  
            person.setLastName(rs.getString("last_name"));  
            return person;  
        }  
    }  
 
    private JdbcTemplate jdbcTemplate;  
 
    public void processStoredProcedure() {  
        CallableStatementCallback cb = new CallableStatementCallback() {  
            public Object doInCallableStatement(CallableStatement cs)  
                    throws SQLException {  
                cs.execute();  
                return null;  
            }  
        };  
        jdbcTemplate.execute("{ ARCHIVE_STUDENTS }", cb);  
    }  
 
    public List getAllPersons() {  
        String sql = "select id, first_name, last_name from person";  
        return jdbcTemplate.query(sql, new RowMapperResultReader(  
                new PersonRowMapper()));  
    }  
 
    public String getLastNameForId(Integer id) {  
        String sql = "select last_name from person where id = ?";  
        return (String) jdbcTemplate.queryForObject(sql, new Object[] { id },  
                String.class);  
    }  
 
    public int getNumberOfPersons() {  
        return jdbcTemplate.queryForInt("select count(*) from person");  
    }  
 
    public Person getPerson1(final Integer id) {  
        String sql = "select id, first_name, last_name from person  where id = ?";  
        final Person person = new Person();  
        final Object[] params = new Object[] { id };  
        jdbcTemplate.query(sql, params, new RowCallbackHandler() {  
            public void processRow(ResultSet rs) throws SQLException {  
                person.setId(new Integer(rs.getInt("id")));  
                person.setFirstName(rs.getString("first_name"));  
                person.setFirstName(rs.getString("last_name"));  
            }  
        });  
        return person;  
    }  
 
    public Person getPerson2(final Integer id) {  
        String sql = "select id, first_name, last_name from person  where id = ?";  
        final Person person = new Person();  
        final Object[] params = new Object[] { id };  
        List list = jdbcTemplate.query(sql, params, new RowMapperResultReader(  
                new PersonRowMapper()));  
        return (Person) list.get(0);  
    }  
 
    public int insertPerson(Person person) {  
        String sql = "insert into person (id, firstName, lastName)  values (?, ?, ?)";  
        Object[] params = new Object[] { person.getId(), person.getFirstName(),  
                person.getFirstName() };  
        int[] types = new int[] { Types.INTEGER, Types.VARCHAR, Types.VARCHAR };  
        JdbcTemplate jdbcTemplate = null;  
        return jdbcTemplate.update(sql, params, types);  
    }  
 
    public int[] updatePersons(final List persons) {  
        String sql = "insert into person (id, firstName, lastName) values (?, ?, ?)";  
        BatchPreparedStatementSetter setter = null;  
        setter = new BatchPreparedStatementSetter() {  
            public int getBatchSize() {  
                return persons.size();  
            }  
 
            public void setValues(PreparedStatement ps, int index)  
                    throws SQLException {  
                Person person = (Person) persons.get(index);  
                ps.setInt(0, person.getId().intValue());  
                ps.setString(1, person.getFirstName());  
                ps.setString(2, person.getLastName());
 
            }  
        };  
        return jdbcTemplate.batchUpdate(sql, setter);  
    }  
}  

============  
 
import java.sql.ResultSet;  
import java.sql.SQLException;  
import java.sql.Types;  
 
import javax.sql.DataSource;  
 
import org.springframework.jdbc.core.SqlParameter;  
import org.springframework.jdbc.object.MappingSqlQuery;  
import org.springframework.jdbc.object.SqlUpdate;  
 
public class SpringJDBCDAOWithObject {  
    class InsertPerson extends SqlUpdate {  
        public InsertPerson(DataSource ds) {  
            setDataSource(ds);  
            setSql("insert into person (id, firstName, lastName) values (?, ?, ?)");  
            declareParameter(new SqlParameter(Types.NUMERIC));  
            declareParameter(new SqlParameter(Types.VARCHAR));  
            declareParameter(new SqlParameter(Types.VARCHAR));  
            compile();  
        }  
 
        public int insert(Person person) {  
            Object[] params = new Object[] { person.getId(),  
                    person.getFirstName(), person.getLastName() };  
            return update(params);  
        }  
    }  
 
    private class PersonByIdQuery extends MappingSqlQuery {  
        public PersonByIdQuery(DataSource ds) {  
            super(ds, "select id, first_name, last_name from person " 
                    + "where id = ?");  
            declareParameter(new SqlParameter("id", Types.INTEGER));  
            compile();  
        }  
 
        public Object mapRow(ResultSet rs, int rowNumber) throws SQLException {  
            Person person = new Person();  
            person.setId((Integer) rs.getObject("id"));  
            person.setFirstName(rs.getString("first_name"));  
            person.setLastName(rs.getString("last_name"));  
            return person;  
        }  
    }  
 
    private InsertPerson insertPerson;  
      
    private PersonByIdQuery personByIdQuery;  
    
    public Person getPerson(Integer id) {  
    Object[] params = new Object[] { id };  
    return (Person) personByIdQuery.execute(params).get(0);  
    }  
 
    public int insertPerson(Person person) {  
        return insertPerson.insert(person);  
    }  
}
红色应从1开始
ps.setInt(1, person.getId().intValue());
ps.setString(2, person.getFirstName());
ps.setString(3, person.getLastName());
分享到:
评论

相关推荐

    基于注解的Spring JdbcTemplate

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

    spring-jdbcTemplate实例工程

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

    SpringJdbcTemplate封装工具类

    在描述中提到的“规范model格式接口”,可能是指创建一套标准的数据访问接口,这些接口定义了CRUD(Create、Read、Update、Delete)操作,并由SpringJdbcTemplate实现具体的数据库交互逻辑。这样做的好处是解耦了...

    Spring JdbcTemplate

    Spring JdbcTemplate接口提供了丰富的API,用于执行SQL查询、更新、插入、删除等操作。它抽象了数据库连接管理、事务控制等复杂过程,使代码更加简洁、易于测试。例如,`queryForList(String sql, Class<T> element...

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

    在登录验证时,Action类会调用Spring服务层的接口,这个接口可能是由Spring的依赖注入机制创建并注入到Action中的。 Spring框架在这个项目中起到了核心的作用。首先,它通过依赖注入管理各个组件,如DAO(数据访问...

    Spring JdbcTemplate查询实例

    Spring JdbcTemplate是Spring框架中用于简化数据库操作的一个重要组件,它是Spring对JDBC的轻量级封装,旨在提供一种结构良好、易于使用的SQL执行机制,同时保持了JDBC的灵活性。在本实例中,我们将深入探讨Spring ...

    Spring JdbcTemplate api

    ### Spring JdbcTemplate API:数据库操作的模板模式 #### 概述 在Spring框架中,`JdbcTemplate`是一个用于简化JDBC编程的工具类,它采用了模板模式来分离数据库访问中的不变和可变部分,提供了一种更加健壮且易于...

    SSH笔记-Spring JdbcTemplate

    3. **结果集处理**:对于查询操作,JdbcTemplate可以将结果集映射到Java对象,这通常通过实现RowMapper接口或使用BeanPropertyRowMapper类来完成。RowMapper允许自定义对象映射逻辑,而BeanPropertyRowMapper则会...

    Spring 学习 JdbcTemplate,模板模式,回调

    JdbcTemplate是Spring提供的一个用于简化数据库操作的API,它是Spring对JDBC(Java Database Connectivity)的轻量级封装。通过使用JdbcTemplate,开发者可以避免编写大量的样板代码,如打开和关闭连接、处理结果集...

    spring jdbcTemplate

    总结,Spring JdbcTemplate提供了一个优雅的JDBC操作接口,使得我们在处理数据库交互时,可以专注于业务逻辑,而不必深陷于繁琐的JDBC语法。在实际项目中,结合图书馆系统Demo的实践,我们可以更好地理解和掌握...

    4.Spring中的JdbcTemplate,Spring中的的事务,

    通过本章节的学习,您应该能够掌握如何使用JdbcTemplate进行基本的数据库操作,以及如何在Spring中配置和使用声明式事务来管理复杂的业务流程。这些技能对于开发基于Spring框架的应用程序至关重要。

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

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

    Spring-JdbcTemplate

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

    jdbcTemplate分页彻底解决,使用游标滚动

    在Java的Spring框架中,`JdbcTemplate`是一个非常重要的组件,它提供了数据库操作的简单抽象,使得开发者可以方便地执行SQL语句而无需编写复杂的DAO(数据访问对象)层。在处理大量数据时,传统的分页方法可能会导致...

    一个简单的spring-jdbctemplate扩展

    使用JdbcTemplate扩展,开发者可以创建自定义的DAO接口,这些接口定义了特定的数据库操作,然后在实现类中利用JdbcTemplate提供的模板方法来完成这些操作。例如,可能会有一个`UserDao`接口,其中包含`getUserById`...

    Spring Security 3.1 +Spring +Servlet+JdbcTemplate

    总的来说,这个项目展示了如何使用Spring Security 3.1与Spring、Servlet和JdbcTemplate协作,来构建一个具有安全功能的Web应用程序。通过这个项目,开发者可以学习到如何配置Spring Security的过滤器链、定义权限...

    Spring--JdbcTemplate.pdf

    JdbcTemplate操作数据库的方法主要包括: 1. 执行增删改操作(CRUD): - 添加数据:调用JdbcTemplate对象的update方法,传入SQL语句和可变参数(值数组)。 - 删除和修改数据:同样通过update方法,传入相应的SQL...

    简单介绍如何使用Spring Boot使用JdbcTemplate与MySQL进行数据库操作

    然后,创建一个`CarRepository`接口,使用JdbcTemplate的方法注解来执行数据库操作: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core....

Global site tag (gtag.js) - Google Analytics