NamedParameterJdbcTemple与RowMapper实现
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实现的更多相关文章
- Spring使用RowMapper将数据中的每一行封装成用户定义的类
1.dao public interface MapperSelecteAllEmpDao { public List<Emp> all(); } 2.实现类 public class M ...
- spring 中的 RowMapper
spring 中的 RowMapper sping中的RowMapper可以将数据中的每一行数据封装成用户定义的类. 我们在数据库查询中,如果返回的类型是用户自定义的类型(其实我们在数据库查询中 ...
- Spring自学教程-jabc编程详解、RowMapper使用(三)
一.JDBC 1.JDBC的编程特点 静态代码+动态变量 = jdbc编程.在spring中动态变量可以用注入的形式给予.这样的编程方式适合包装成模板.静态代码构成了模板,而动态变量则是需要传入的参数 ...
- Spring中JdbcTemplate使用RowMapper
package com.cxl.demo.dao; import java.sql.ResultSet; import java.sql.SQLException; import java.util. ...
- [Spring学习笔记 7 ] Spring中的数据库支持 RowMapper,JdbcDaoSupport 和 事务处理Transaction
1.Spring中的数据库支持 把具有相同功能的代码模板抽取到一个工具类中.2.关于jdbc template的应用 jdbcTemplate模板操作类,把访问jdbc的模板抽取到template中, ...
- Spring JDBC RowMapper接口示例
JdbcTemplate类使用org.springframework.jdbc.core.RowMapper <T>接口在每行的基础上映射ResultSet的行.该接口的实现执行将每行映射 ...
- RowMapper使用
public class ABRow implements RowMapper<AABB> { private String CMC; @Override public AABB mapR ...
- Spring jdbcTemplate RowMapper绑定任意对象
RowMapper可以将数据中的每一行封装成用户定义的类,在数据库查询中,如果返回的类型是用户自定义的类型则需要包装,如果是Java自定义的类型,如:String则不需要,Spring最新的类Simp ...
- 通用RowMapper封装查询结果到自定义类中
package object; import java.lang.reflect.Field;import java.sql.ResultSet;import java.sql.SQLExceptio ...
随机推荐
- C#查找指定路径下的所有指定文件,并读取
string path="指定路径"; string filename =“需要查找的文件名.csv"; List<string> lineStringLis ...
- VS.NET(C#)--2.4_aspx默认页面模板代码
默认模板代码 客户端浏览器将忽视<script>块间任何字符,不在页面输出.通过<%=DataTime.Now.ToString() %> 将服务端代码放中间 < ...
- instr函数的用法
1.定义 instr函数返回要截取的字符串在源字符串中的位置 语法如下: instr( string1, string2 [, start_position [, nth_appearance ] ...
- webform 的路由
webform是怎么通过url找到对应handler的呢? mvc 和webapi的路由都是通过注册到RouteTable.Routes中,然后在urlroutingmodule中路由到对应route ...
- PIESDKDoNet二次开发配置注意事项
在安装完PIESDK进行二次开发的过程中会遇到下面几种常见的开发配置问题,就写一个文档总结一下. 1. 新建项目无PIESDK模板问题 关于新建项目时候,找不到下图中的PIEMainApplic ...
- nginx配置ssl证书实现https
一,环境说明 服务器系统:centos6 服务器IP地址:0.0.0.0 域名:bjubi.com 二,域名解析到服务器 在阿里云控制台-产品与服务-云解析DNS-找到需要解析的域名点“解析”,进入解 ...
- MySQL中的存储过程、游标和存储函数
MySQL中的存储过程首先来看两个问题: 1.什么是存储过程? 存储过程(Stored Procedure)是在数据库系统中,一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存 ...
- 华为手机usb调试打开后自动关闭怎么办?华为手机 usb调试为什么自动关闭?usb调试老是自动关闭怎么回事?
01 解决方法一依次点击“设置”——“系统”——“开发人员选项”先开启“开发者选项”开关. 02 然后在开启“USB调试”开关后,一并将“'仅充电'模式下允许ADB调试”选项开关打开.这样,华为手机u ...
- Linq实现字符串拼接多条件查询
Linq实现字符串拼接多条件查询 开发过程中,为提升用户体验,经常会使用到多条件查询,本篇博客介绍如何使用Linq实现字符串拼接多条件查询 一般SQL字符串拼接 1 string sql = &quo ...
- 实验吧简单的sql注入3
今天早上起来发现有人评论说我没更新实验吧sql注入3,主要是因为前段时间都去做bugku去了 但是重做这道题发现以前的姿势不行了,exp()报错不再溢出,现在不能用这个姿势,所以这里重新整理了一遍思路 ...