NamedParameterJdbcTemplate常用方法总结
数据库结构
1.插入/修改/删除数据,使用update方法
插入数据1
API: int update(String sql, Map< String, ? > paramMap)
示例:
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("id", UUID.randomUUID().toString());
paramMap.put("name", "小明");
paramMap.put("age", 33);
paramMap.put("homeAddress", "乐山");
paramMap.put("birthday", new Date());
template.update( "insert into student(id,name,age,home_address,birthday)
values (:id,:name,:age,:homeAddress,:birthday)",
paramMap);
插入数据2
API: int update(String sql, SqlParameterSource paramSource)
使用 BeanPropertySqlParameterSource作为参数
public class StudentDTO{
private String id;
private String name;
private String homeAddress;
//getter,setter
}
StudentDTO dto=new StudentDTO();//这个DTO可以是接收前端的
dto.setId(UUID.randomUUID().toString());
dto.setName("小红");
dto.setHomeAddress("成都");
template.update("insert into student(id,name,home_address) values (:id,:name,:homeAddress)",
new BeanPropertySqlParameterSource(dto));
插入数据3
API: int update(String sql, SqlParameterSource paramSource)
//使用 MapSqlParameterSource 作为参数
MapSqlParameterSource mapSqlParameterSource = new MapSqlParameterSource()
.addValue("id", UUID.randomUUID().toString())
.addValue("name", "小王")
.addValue("homeAddress", "美国");
template.update("insert into student(id,name,home_address) values
(:id,:name,:homeAddress)",mapSqlParameterSource);
2.查询
BeanPropertySqlParameterSource 这个类可以把参数包装,
BeanPropertyRowMapper 这个类可以把结果包装,
2.1返回单行单列数据
API: public < T > T queryForObject(String sql, Map< String, ?> paramMap, Class< T> requiredType)
示例:
Integer count = template.queryForObject(
"select count(*) from student", new HashMap<>(), Integer.class);
API: public < T > T queryForObject(String sql, SqlParameterSource paramSource, Class requiredType)
示例:
String name = template.queryForObject( "select name from student where home_address like :addr limit 1 ", new MapSqlParameterSource("addr", "%成都%"), String.class);
2.2 返回 (多行)单列 数据
API: public < T> List< T> queryForList(String sql, Map< String, ?> paramMap, Class< T > elementType)
API: public < T> List< T> queryForList(String sql, SqlParameterSource paramSource, Class< T> elementType)
示例:
List< String> namelist = template.queryForList("select name from student", new HashMap<>(), String.class);
2.3 返回单行数据
API: public < T> T queryForObject(String sql, Map< String, ?> paramMap, RowMapper< T>rowMapper)
API: public < T> T queryForObject(String sql, SqlParameterSource paramSource, RowMapper< T> rowMapper)
示例:
StudentDTO studentDTO = template.queryForObject(
"select name from student limit 1", new HashMap<>(), new BeanPropertyRowMapper<StudentDTO>(StudentDTO.class));
//BeanPropertyRowMapper会把下划线转化为驼峰属性
//结果对象可比实际返回字段多或者少
//也可以手动编写RowMapper,但比较麻烦
2.4 返回map形式的单行数据
API: public Map< String, Object> queryForMap(String sql, Map< String, ?> paramMap) throws DataAccessException
API: public Map< String, Object> queryForMap(String sql, SqlParameterSource paramSource) throws DataAccessException
示例:
Map< String, Object> studentMap = template.queryForMap("select * from student limit 1", new HashMap<>());
2.5 返回多行数
API: public < T> List< T> query(String sql, Map< String, ?> paramMap, RowMapper< T> rowMapper)
API: public < T> List< T> query(String sql, SqlParameterSource paramSource, RowMapper< T> rowMapper)
API: public < T> List< T> query(String sql, RowMapper< T> rowMapper) throws DataAccessException {
示例:
List< StudentDTO> studentDTOList = template.query(
"select * from student", new BeanPropertyRowMapper< StudentDTO>(StudentDTO.class));
System.out.println(studentDTOList);
2.6 返回多行数返回多行数据(Map)
API: public List< Map< String, Object>> queryForList(String sql, Map< String, ?> paramMap)
API: public List< Map< String, Object>> queryForList(String sql, SqlParameterSource paramSource)
示例:
List<Map<String, Object>> mapList = template.queryForList(
"select * from student", new HashMap<>());
NamedParameterJdbcTemplate常用方法总结的更多相关文章
- 前端开发:Javascript中的数组,常用方法解析
前端开发:Javascript中的数组,常用方法解析 前言 Array是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array ...
- Jquery元素选取、常用方法
一:常用的选择器:(李昌辉) 基本选择器 $("#myDiv") //匹配唯一的具有此id值的元素 $("div") //匹配指定名称的所有元素 $(" ...
- python浅谈正则的常用方法
python浅谈正则的常用方法覆盖范围70%以上 上一次很多朋友写文字屏蔽说到要用正则表达,其实不是我不想用(我正则用得不是很多,看过我之前爬虫的都知道,我直接用BeautifulSoup的网页标签去 ...
- C# Webbrowser 常用方法及多线程调用
设置控件的值 /// <summary> /// 根据ID,NAME双重判断并设置值 /// </summary> /// <param name="tagNa ...
- list,tuple,dict,set常用方法
Python中list,tuple,dict,set常用方法 collections模块提供的其它有用扩展类型 from collections import Counter from collect ...
- 记录yii2-imagine几个常用方法
记录yii2-imagine几个常用方法: //压缩 Image::thumbnail('@webroot/img/test-image.jpg', 120, 120)->save(Yii::g ...
- DOM常用方法总结
DOM(Document Object Model:文档对象模型)为javascript中的一部分,它为访问和修改html文档或xml文档提供了一些编程接口,DOM以对象的形式来描述文档中的内容,以树 ...
- JSP内置对象及常用方法
jsp九大内置对象及四个作用域: 何为作用域 先让我们看看效果: 大概流程是这样的,我们访问index.jsp的时候,分别对pageContext, request, session,applicat ...
- java中集合类中Collection接口中的Map接口的常用方法熟悉
1:Map接口提供了将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值.Map接口中同样提供了集合的常用方法. 2:由于Map集合中的元素是通过key,value,进行存储的,要 ...
随机推荐
- 20145302张薇《Java程序设计》实验五报告
20145302张薇 实验五:Java网络编程及安全 实验内容 掌握Socket程序的编写: 掌握密码技术的使用: 设计安全传输系统. 实验要求 基于Java Socket实现安全传输 基于TCP实现 ...
- 解读:hadoop压缩格式
Hadoop中用得比较多的4种压缩格式:lzo,gzip,snappy,bzip2.它们的优缺点和应用场景如下: 1). gzip压缩 优点:压缩率比较高,而且压缩/解压速度也比较快:hadoop本身 ...
- 无线网卡在 MAC 系统下的安装与使用过程
MAC系统安装netgear无线网卡的方法: 1)去网件官网下载相应的驱动软件 2)单击页面左侧的“Version 1.0.0.0”进入下载页面如下图 3)选择对应您系统版本的驱动程序,按右键保存到计 ...
- Tomcat的配置,设置内存,获取用户IP
一.修改配置文件 tomcat配置文件路径/tomcat/bin/server.xml # shutdown指定终止Tomcat服务器运行时,发给Tomcat 服务器的shutdown监听端口的字符串 ...
- Linux 下部署Django项目
Linux 下部署Django项目 说明:本文所使用的环境为CentOS 6+Python2.7+Django1.11 安装Django.Nginx和uWSGI 1.确定已经安装了2.7版本的Py ...
- 爬虫框架Scrapy之Spider
Spider Spider类定义了如何爬取某个(或某些)网站.包括了爬取的动作(例如:是否跟进链接)以及如何从网页的内容中提取结构化数据(爬取item). 换句话说,Spider就是您定义爬取的动作及 ...
- java.lang.IllegalArgumentException的解决方法
java.lang.IllegalArgumentException这个错误基本上就是jdk版本的问题 把jdk1.8换成jdk1.7就可以了 这里可以设置jdk最低版本 这里默认要选择jdk1.7 ...
- Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused (Connection refused)
一.linux中配置redis,使用java连接测试时报错: Exception in thread "main" redis.clients.jedis.exceptions.J ...
- perl I/O和缓存的关系
最近在查看日志时,突然发现信息没有及时写入日志,研究了很久,突然醒悟:原来是print的缓存原因. 顺着这个详细了解了下perl里的IO缓存机制: 1.正常情况下,操作系统的读写都有缓存(buffer ...
- Lubuntu系统中java,tomcat的环境搭建(virtualbox中)
一.安装Lubuntu系统 这一步没什么说的,到官网下载镜像,在virtualbox中安装即可安装时就已经可以选择安装源,当然,选中国的设置环装网络,可将该虚拟机设立为网络上的独立IP,和物理机间可以 ...