NamedParameterJdbcTemplate和JdbcTemplate功能基本差不多。

1、配置

db.properties

1 jdbc.user=root
2 jdbc.password=123456
3 jdbc.driverClass=com.mysql.jdbc.Driver
4 jdbc.jdbcUrl=jdbc\:mysql\:///test

applicationContext.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xmlns:aop="http://www.springframework.org/schema/aop"
5 xmlns:context="http://www.springframework.org/schema/context"
6 xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
7 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
8 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
9
10 <context:property-placeholder location="classpath:db.properties"/>
11 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
12 <property name="user" value="${jdbc.user}"></property>
13 <property name="password" value="${jdbc.password}"></property>
14 <property name="driverClass" value="${jdbc.driverClass}"></property>
15 <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
16 </bean>
17
18 <!-- NamedParameterJdbcTemplate有一个带有DataSource的构造器 -->
19 <bean id="namedParameterJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
20 <constructor-arg ref="dataSource"></constructor-arg>
21 </bean>
22 </beans>

2、RowMapper实现对象关系映射查询

public class UserDaoImpl implements UserDao{

	@Resource
private NamedParameterJdbcTemplate namedParameterJdbcTemplate; private RowMapper<User> userRowMapper = new RowMapper<User>(){ @Override
public User mapRow(ResultSet rs,int rowNum) throws SQLException{
User user = new User();
user.setId = rs.getString("id");
user.setUserName = rs.getString("userName");
user.setPassword = rs.getString("password");
return user;
} } public List<User> getUserList(String userName){
String sql = "SELECT * FROM t_user where userName = :userName";
Map<String,Object> map = new HashMap<String,Object>();
map.put("userName",userName);
return namedParameterJdbcTemplate.query(sql,map,userRowMapper);
} }

3、实现更新与对象设置属性

Java代码

 1 //启动IoC容器
2 ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
3
4 NamedParameterJdbcTemplate namedParameterJdbcTemplate=ctx.getBean(NamedParameterJdbcTemplate.class);
5 //为变量名称前面加上冒号
6 String sql="insert into user (name,deptid) values (:name,:deptid)";
7 //定义map集合,其参数名称为sql语句中变量的名称
8 Map<String,Object> paramMap=new HashMap<String,Object>();
9 paramMap.put("name", "caoyc");
10 paramMap.put("deptid", 2);
11 namedParameterJdbcTemplate.update(sql, paramMap);

方式二:

 1 //启动IoC容器
2 ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
3
4 NamedParameterJdbcTemplate namedParameterJdbcTemplate=ctx.getBean(NamedParameterJdbcTemplate.class);
5 //为变量名称前面加上冒号
6 String sql="insert into user (name,deptid) values (:name,:deptid)";
7 //定义个实体类
8 User user=new User();
9 user.setName("zhh");
10 user.setDeptid(3);
11
12 SqlParameterSource paramSource=new BeanPropertySqlParameterSource(user);
13 namedParameterJdbcTemplate.update(sql, paramSource);

Reference:

[1] 追风-, Spring 中的 RowMapper, http://blog.csdn.net/yajunren/article/details/10103035

[2] HappyBKs, Spring框架笔记(二十五)——NamedParameterJdbcTemplate与具名参数, https://my.oschina.net/happyBKs/blog/497798

[3] JustDo, Spring NamedParameterJdbcTemplate详解, http://www.cnblogs.com/caoyc/p/5630957.html

NamedParameterJdbcTemple与RowMapper实现的更多相关文章

  1. Spring使用RowMapper将数据中的每一行封装成用户定义的类

    1.dao public interface MapperSelecteAllEmpDao { public List<Emp> all(); } 2.实现类 public class M ...

  2. spring 中的 RowMapper

    spring 中的 RowMapper sping中的RowMapper可以将数据中的每一行数据封装成用户定义的类.    我们在数据库查询中,如果返回的类型是用户自定义的类型(其实我们在数据库查询中 ...

  3. Spring自学教程-jabc编程详解、RowMapper使用(三)

    一.JDBC 1.JDBC的编程特点 静态代码+动态变量 = jdbc编程.在spring中动态变量可以用注入的形式给予.这样的编程方式适合包装成模板.静态代码构成了模板,而动态变量则是需要传入的参数 ...

  4. Spring中JdbcTemplate使用RowMapper

    package com.cxl.demo.dao; import java.sql.ResultSet; import java.sql.SQLException; import java.util. ...

  5. [Spring学习笔记 7 ] Spring中的数据库支持 RowMapper,JdbcDaoSupport 和 事务处理Transaction

    1.Spring中的数据库支持 把具有相同功能的代码模板抽取到一个工具类中.2.关于jdbc template的应用 jdbcTemplate模板操作类,把访问jdbc的模板抽取到template中, ...

  6. Spring JDBC RowMapper接口示例

    JdbcTemplate类使用org.springframework.jdbc.core.RowMapper <T>接口在每行的基础上映射ResultSet的行.该接口的实现执行将每行映射 ...

  7. RowMapper使用

    public class ABRow implements RowMapper<AABB> { private String CMC; @Override public AABB mapR ...

  8. Spring jdbcTemplate RowMapper绑定任意对象

    RowMapper可以将数据中的每一行封装成用户定义的类,在数据库查询中,如果返回的类型是用户自定义的类型则需要包装,如果是Java自定义的类型,如:String则不需要,Spring最新的类Simp ...

  9. 通用RowMapper封装查询结果到自定义类中

    package object; import java.lang.reflect.Field;import java.sql.ResultSet;import java.sql.SQLExceptio ...

随机推荐

  1. hadoop格式化:java.io.IOException: Incompatible clusterIDs in /home/lxh/hadoop/hdfs/data: namenode clusterID

    1 概述  解决hadoop启动hdfs时,datanode无法启动的问题.错误为: java.io.IOException: Incompatible clusterIDs in /home/lxh ...

  2. 单词大学CET六四级英语

    2012年大学英语六级词汇 baseball n.棒球:棒球运动 basement n.地下室:地窖:底层 basin n.内海:盆地,流域 battery n.炮兵连:兵器群 battle vi.战 ...

  3. css+js实现自动伸缩导航栏

    用css+js实现自动伸缩导航栏 需要达到的效果: 默认首页选中样式 设置鼠标滑过效果:颜色变化(#f60),宽度变化,字体变化 所涉及的知识点: 布局:float css: 元素状态切换(displ ...

  4. 处理 unassigned shard

    #查看所有分片 GET _cat/shards curl  10.1.2.2:9200/_cat/indices/iis_log* #查看索引的分片状态 #查看第一个unassigned shard的 ...

  5. Javascript屏蔽Backspace回退页面

    允许对输入框密码框等控件删除字符,但是不允许页面进行回退 <html lang="en" xmlns="http://www.w3.org/1999/xhtml&q ...

  6. MySQL难点语法——连接

    本篇涉及的数据表格可以自行查阅上篇<MySQL难点语法——子查询> MySQL的数据表格之间有三种连接方式:等值连接.外连接.自连接.以下是通过举例介绍这三种连接方式 1.等值连接 等值连 ...

  7. vue+element 表格按需合并

    这个功能难度感觉一般般吧,记录一下,以后碰到了直接来复制,懒得再写了 效果如下: 前6列是合并,后面的有几行,动态显示几行 重点是在数据处理上面做文章,合并列大家都会,数据处理呢?这样来处理, 我们拿 ...

  8. flink Reduce、GroupReduce、GroupCombine笔记

    1.reduce操作,在分组的dataset上使用,也可以在不分组的dataset上使用 应用于分组DataSet的Reduce转换使用用户定义的reduce函数将每个组减少为单个元素.对于每组输入元 ...

  9. 【数据库】数据库入门(四): SQL查询 - SELETE的进阶使用

    集合操作常用的集合操作主要有三种:UNION(联合集).INTERSECT(交叉集).EXCEPT(求差集).以上三种集合的操作都是直接作用在两个或者多个 SQL 查询语句之间,将所有的元组按照特定的 ...

  10. html5表单上传控件Files筛选指定格式的文件:accept属性过滤excel文件

    摘自:http://blog.csdn.net/jyy_12/article/details/9851349 (IE9及以下不支持下面这些功能,其它浏览器最新版本均已支持.) 1.允许上传文件数量 允 ...