Spring JDBC模板惯用方式

Spring JDBC模板惯用方式
    
    @Resource
    private NamedParameterJdbcTemplate jdbcTemplate;
    @Resource
    private JdbcTemplate jdbcTemplateSimple;

1、插入并获取自增主键
	KeyHolder keyHolder = new GeneratedKeyHolder();
        jdbcTemplateSimple.update(new PreparedStatementCreator() {
            @Override
            public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
                PreparedStatement ps = connection.prepareStatement(insert_sql, Statement.RETURN_GENERATED_KEYS);
                ps.setLong(1, 2L);
                ps.setString(6, "test");
                return ps;
            }
        }, keyHolder);
        long id = keyHolder.getKey().longValue();

2、查询返回结果集List<Map<String, Object>>
        List<Map<String, Object>> list = jdbcTemplateSimple.queryForList("select * from test where code=? and state=?", "Y001", 1);

3、根据Map参数来查询结果集,并封装成对应的Bean
	Map<String,Object> map = new HashMap();
	map.put("code","Y001");
	map.put("state",1);

        List<TestBean> beanList = jdbcTemplate.query("select * from test where code=:code and state=:state", map, new RowMapper<TestBean>() {
            @Override
            public BidItemBean mapRow(ResultSet rs, int i) throws SQLException {
                TestBean b = new TestBean();
                b.setId(rs.getLong("id"));
                b.setCode(rs.getString("code"));
                b.setState(rs.getString("state"));
                return b;
            }
        });

4、更新删除:
	jdbcTemplateSimple.update("delete from test where product_id=? and picking_center_id=?", "Y001", 1);
时间: 2025-01-10 13:03:25

Spring JDBC模板惯用方式的相关文章

【Spring实战】—— 15 Spring JDBC模板使用

前一篇通过对传统的JDBC的使用操作,可以体会到使用的繁琐与复杂,套句话说,是用了20%作了真正的工作,80%作了重复的工作. 那么通过本篇,可以了解如下的内容: 1 如何配置数据源 2 如何在spring中使用模板 3 如何建立数据源的统一的基类 首先看一下如何配置数据源 我们可以使用3种方式配置数据源: 1 JNDI配置数据源 这种做法我是没用过,感觉每次都要去修改配置Tomcat之类的web容器,很是麻烦. 2 使用DBCP数据源连接池 一般情况下都是采用这种方式,对于连接池的实现,也有很

Spring(二):AOP(面向切面编程),Spring的JDBC模板类

1 AOP概述 1.2 什么是AOP 在软件业,AOP为Aspect Oriented Programmig的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型.利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率. AOP解决了OOP遇到一些问题,采取横向抽取机制,取代了传统

Spring入门(三)— AOP注解、jdbc模板、事务

一.AOP注解开发 导入jar包 aop联盟包. aspectJ实现包 . spring-aop-xxx.jar . spring-aspect-xxx.jar 导入约束 aop约束 托管扩展类和被扩展类 <!-- 要做AOP, 一定要托管扩展类和被扩展类 --> <bean id="us" class="com.pri.service.impl.UserServiceImpl"></bean> <bean id="

Spring的JDBC模板

Spring是一个分层的JavaSE/EEfull-stack(一站式)轻量级开源框架.它针对JavaEE三层中的每一层都提供了不同的解决技术,在dao层,Spring提供了JDBC模板的技术,可对数据库进行CRUD操作.Spring提供了很多持久层技术的模板类简化了编程,如下图: Spring框架对不同的持久层技术做了封装,如对传统的JDBC使用JdbcTemplate进行了封装,对Hibernate框架使用HibernateTemplate进行了封装.JdbcTemplate对JDBC进行了

spring jdbc

DBCP 基于jdbc,操作数据库速度比较快,优于hibernate但是功能没hibernate强大 ,增删改可以用,查询用起来比较麻烦 DBCP(DataBase Connection Pool)数据库连接池,是java数据库连接池的一种,由 Apache开发,通过数据库连接池,可以让程序自动管理数据库连接的释放和断开. DBCP(DataBase connection pool),数据库连接池.是 apache 上的一个 java 连接池 项目,也是 tomcat 使用的连接池组件.单独使用

Spring JDBC 框架中, 绑定 SQL 参数的另一种选择:具名参数(named parameter)

使用spring的jdbcTemplate-----使用具名参数 在JDBC用法中,SQL参数是用占位符?表示,并且受到位置的限制,定位参数的问题在于,一旦参数的位置发生变化,必须改变参数的绑定,在Spring JDBC中,绑定SQL参数的另一种选择是使用具名参数,SQL具名参数是按照名称绑定,而不是位置绑定. 什么是具名参数? 具名参数: SQL 按名称(以冒号开头)而不是按位置进行指定. 具名参数更易于维护, 也提升了可读性. 具名参数由框架类在运行时用占位符取代 具名参数只在 NamedP

Spring JDBC详解

<Spring JDBC详解> 本文旨在讲述Spring JDBC模块的用法.Spring JDBC模块是Spring框架的基础模块之一. 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 一.概述 在Spring JDBC模块中,所有的类可以被分到四个单独的包:1)core即核心包,它包含了JDBC的核心功能.此包内有很多重要的类,包括:JdbcTemplate类.SimpleJdbcInsert类,SimpleJdbcCall类,以及NamedP

Spring DAO vs Spring ORM vs Spring JDBC

Pat 的疑惑 最近关注于 Spring 提供的数据访问技术,对于 Spring 相关的这几个项目有何不同我不是太明白: Spring-DAO (http://docs.spring.io/spring/docs/2.0.8/reference/dao.html) Spring-ORM (http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/orm.html) Spring-JDBC (http://doc

Spring JDBC 访问数据库

Spring JDBC是Spring所提供的持久层技术,它以一种更直接.更简单的方式使用JDBC API.在Spring JDBC里,用户仅需要做那些必不可杀的事儿,而将资源获取.Statement创建.异常处理.资源释放等繁杂的工作交给Spring. 虽然ORM的框架已经很成熟,但是JDBC灵活直接的特性依旧让它有自己的用武之地. 本节的主要内容:使用JdbcTemplate模板类进行CRUD数据操作.BLOB和CLOB类型数据的操作,支持命名参数绑定NamedParameterJdbcTem