`
Callan
  • 浏览: 736781 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

spring jdbc 代码收藏

    博客分类:
  • Java
阅读更多
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);
    }
}

 
3
1
分享到:
评论
1 楼 yi4521870 2008-10-16  
配置文件呢?????????

相关推荐

    Spring+SpringMVC+Mybatis框架整合例子(SSM) 下载

    Mybatis则是一个轻量级的持久层框架,它解决了JDBC的繁琐代码问题,提供了更方便的SQL映射和对象关系映射。Mybatis允许开发者直接编写SQL,提高了查询效率和灵活性,同时通过XML或注解方式配置和映射原生信息,将...

    晾晾多年珍藏spring开发指南.pdf

    Spring是一个开源的Java平台,它简化了企业级应用的开发,通过提供依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)等核心特性,实现了代码的解耦和模块化。 2. **依赖...

    spring4.2.5最新文档-英文

    Spring框架是Java开发中不可或缺的一部分,它以其模块化、易用性和灵活性著称。Spring 4.2.5是该框架的一个稳定版本,为开发者提供了丰富的...这份文档是学习和参考Spring框架的宝贵资源,值得每一个Java开发者收藏。

    Spring框架参考文档(中文版PDF)

    此外,Spring还包含数据访问/集成层,如JDBC抽象、ORM支持(Hibernate、MyBatis等)、JPA等,以及对邮件服务、任务调度、远程调用等的支持。 在“Spring框架参考文档(中文版PDF)”中,你将深入学习到Spring的各个...

    Spring核心知识点完整梳理(史上最全,值得收藏)

    这份名为“Spring核心知识点完整梳理(史上最全,值得收藏)”的资料可能是对Spring框架进行全面剖析的文档,涵盖了Spring的各种关键概念和技术。 1. **依赖注入(Dependency Injection,DI)**:这是Spring的核心...

    Java代码收藏.rar

    以上只是Java编程中的一部分知识点,实际的"Java代码收藏"可能涵盖了更广泛的主题,包括但不限于设计模式、数据库操作、XML解析、GUI编程、JSP和Servlet(Web开发)、JDBC(数据库访问)、JUnit(单元测试)等。...

    基于Spring的MVC框架设计与实现

    在应用方面,文章提到了使用该基于Spring的MVC框架开发的网络收藏夹案例。这表明了该框架不仅适用于简单的示例,而且能够支撑实际的网络应用程序开发。通过具体的案例分析,开发者能够更深入地理解MVC框架在实际项目...

    spring中文API 3.x 2.x版本

    Spring框架是Java开发中广泛应用的一个开源框架,以其强大的依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-...因此,确保收藏并充分利用这些中文API文档,将极大地促进你对Spring框架的理解和掌握。

    java+mysql实现的代码分享网(所有源码已开源,效果可看网址:www.admintwo.com)

    基于struts2+spring+springjdbc开发的代码分享网,所有源码已开源。 网站功能介绍: 1、邮件注册(采用阿里云企业邮箱),为了让大家体验一下邮箱注册功能。我已经在分享的源码中,为大家配置好了测试账户,大家可以...

    基于Spring框架的云笔记设计与实现.pdf

    MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 8. ...

    精品专题(2021-2022年收藏)StrutsHibernateSpring三个框架简介.doc

    4. **DAO和JDBC抽象**:Spring提供了一套JDBC模板,简化了数据库操作,减少了手动处理数据库连接的代码。 5. **与Struts和Hibernate的集成**:Spring可以轻松地与Struts和Hibernate结合,提供统一的事务管理和更高...

    易买网代码

    首先,MyBatis作为Java中的一个持久层框架,它的主要作用是简化数据库操作,通过XML或注解的方式将SQL语句与Java代码绑定,使得开发者可以更专注于业务逻辑而非繁琐的JDBC代码。在"易买网代码"项目中,MyBatis被用来...

    Struts、Hibernate、Spring经典面试题收藏

    1. **简化JDBC编程**:传统的JDBC编程非常繁琐,需要处理大量的资源管理代码。Hibernate通过提供高级的数据持久化服务,极大地简化了这一过程。 2. **ORM(Object-Relational Mapping)映射**:Hibernate支持将Java...

    SpringBoot+SpringMVC+Mybatis+SpringCloud实现个性化推荐的在线学习系统

    MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。通过XML或注解的方式将接口实现类映射到数据库语句,使开发变得更加轻松。 - **在系统中的体现**:Mybatis主要负责数据访问层,通过配置映射关系,...

    ssm黑马旅游整合最终版2018

    - **Spring 相关**:Spring WebMVC、Spring JDBC、Spring AOP等。 - **MyBatis 相关**:MyBatis 框架本身及其与Spring集成的组件。 - **数据库连接**:MySQL驱动及 Druid 连接池。 - **日志系统**:SLF4J+Log4...

    2022年StrutsHibernateSpring经典面试题收藏.doc

    1. 封装了JDBC,减少重复的数据库访问代码。 2. 作为ORM框架,简化DAO层的编写。 3. 利用Java反射机制实现透明性,无需字节码增强。 4. 性能优异,轻量级,支持多种数据库关系映射。 Hibernate的延迟加载机制允许在...

    收藏的一些项目ssm,springboor项目.rar

    MyBatis则提供了一种轻量级的ORM(对象关系映射)解决方案,避免了传统的JDBC代码的繁琐,同时保持了SQL的灵活性。 Spring Boot的出现,进一步提升了开发效率。它通过自动配置,使得开发者无需编写大量配置文件,就...

    运动社区网站代码

    2. **数据存储**:Java通常会结合关系型数据库如MySQL或非关系型数据库如MongoDB,通过JDBC或ORM框架如Hibernate进行数据操作。 3. **前端界面**:可能使用了HTML、CSS和JavaScript,结合Bootstrap、Vue.js或React....

    java开发Web大作业基于SSM的小论坛项目源代码.zip

    MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 4. **...

Global site tag (gtag.js) - Google Analytics