Spring MVC笔记 使用JdbcTemplate
Spring提供了 JdbcTemplate 来封装数据库jdbc操作细节,
包括: 数据库连接[打开/关闭] ,异常转义 ,SQL执行 ,查询结果的转换,
其中体现了 模板模式 的设计模式思想。
使用了Spring JdbcTemplate 之后,开发人员只需要完成其中两项编码工作。
指定数据库连接参数
打开数据库连接
声明SQL语句
预编译并执行SQL语句
遍历查询结果(如果需要的话)
处理每一次遍历操作
处理抛出的任何异常
处理事务
关闭数据库连接
Spring将替我们完成所有单调乏味的JDBC底层细节处理工作。
使用JdbcTemplate进行查询时,可以使用queryForXXX()等方法,例如使用queryForInt()方法传回user表格中的数据数目: jdbcTemplate.quertForInt("select count(*) from user"); 也可以使用queryForObject()传回一个查询后的对象,例如传回一个String对象:
String name=(String)jdbcTemplate.queryForObject(
"selcet name from user where id=?",
new Object[]{id},
java.lang.String.class);
)
上面两个例子都是传回单独一笔数据,如果要传回多笔数据,则可以使用queryForList()方法,例如:
List rows=jdbcTemplate().queryForList("select * from user where id="+id.intValue()); 传回的list中包括的是map对象,每个map对象代表查询结果中的一笔数据,每笔数据包括多个字段,要取得字段中的值,就要使用字段名作为key,例如:
Iterator it=rows.iterator();
while(it.hasNext()){
Map result=(Map)it.next();
System.out.println(userMap.get("id"));
System.out.println(userMap.get("name"));
System.out.println(userMap.get("age"));
}
在查询的同时,你可以在返回结果之前先进行一些处理,这就要实现RowCallbackHandler接口
public User find(Integer id){
final User user=new User();
jdbcTemplate.query("select * from user where id=?",new Object[]{id},
new RowCallBackHandler(){
public void proccessRow(ResultSet rs){
user.setId(new Integer(rs.getInt("id")));
uset.setName(rs.getString("name"));
}
});
return user;
}
如果一次要返回多个查询结果对象,则可以实现RowMapper接口
public class UserRowMapper implements RowMapper{
public Object MapRow(ResultSet rsmint rowNum) throws SQLException{
User user=new User();
user.setId(new Integer(rs.getInt("id")));
user.setName(rs.getString("name"));
return user;
}
}
使用RowMapper查询单笔数据
public User find(Integer id){
User user=(User)jdbcTemplate.queryForObject("select * from user where id=?",new Object[]{id},
new UserRowMapper());
return user;
}
使用RowMapper查询多笔数据
List users=jdbcTemplate.query("select * from user",new UserRowMapper());
传回的users对象中,包括了从数据库查询出来的结果,并已经封装成uer对象。
Spring MVC笔记 使用JdbcTemplate的更多相关文章
- Spring Mvc 笔记二之异常和文件上传
spring mvc的异常与文件上传 1.异常: spring注解版的异常有局部异常和全局异常 1.局部异常对单个controller有效;(在controller类写一 ...
- Spring MVC 笔记 —— Spring MVC 文件上传
文件上传 配置MultipartResolver <bean id="multipartResolver" class="org.springframework.w ...
- spring mvc笔记
80214shuenjian224shuenjian@sina 北风网公开课课程大纲1.学习MVC框架的步骤2.Spring MVC运行机制3.演示Spring MVCAdd Maven suppor ...
- Spring MVC 笔记--配置基于JavaConfig
主要使用基于 JavaConfig 方式配置 配置 DispatcherServlet 通过继承抽象类AbstractAnnotationConfigDispatcherServletInitiali ...
- spring mvc 笔记
springmvc 课堂笔记 1.Springmvc是什么 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想, ...
- Spring学习笔记:jdbcTemplate和数据源配置
一.使用Spring框架jdbcTemplate实现数据库的增删改查 1.数据库 /* SQLyog Ultimate v8.32 MySQL - 5.7.19-log : Database - in ...
- Spring MVC 笔记2 HelloWorld
实现这个例子的问题 WEB-INFO目录下必须有spring的包,放在lib下:如下图(这里我直接把idea创建时宣称springmvc,然后把idea给的lib拷贝了下来,也可以的) request ...
- Spring MVC 笔记 概述
学习笔记 模型:封装装程序数据 视图:渲染模型数据,一般来说就是输出HTML 控制:处理请求,构建模型并将其传递给视图进行渲染 以上三者均围绕DispatcherServlet设计,它处理所有的HTT ...
- SSM 实训笔记 -11- 使用 Spring MVC + JDBC Template 实现筛选、检索功能(maven)
SSM 实训笔记 -11- 使用 Spring MVC + JDBC Template 实现筛选.检索功能(maven) 本篇是新建的一个数据库,新建的一个完整项目. 本篇内容: (1)使用 Spri ...
随机推荐
- Laravel教程 一:安装及环境配置
Laravel教程 一:安装及环境配置 此文章为原创文章,未经同意,禁止转载. Homestead 最近在SF上面看到越来越多的Laravel相关的问题,而作为一个Laravel的脑残粉,本来打算有机 ...
- javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection
客户端向服务器发送数据时,份两种情况,SSL单向验证和SSL双向验证 1.SSL单向验证时 代码如下: import java.io.IOException; import java.util.Has ...
- js中的getAttribute方法使用示例
getAttribute()方法是一个函数.它只有一个参数——你打算查询的属性的名字,下面为大家介绍下其具体的使用 getAttribute()方法 至此,我们已经向大家介绍了两种检索特定元素节点 ...
- dedecms无法创建rss文件,提示DedeTag Engine Create File False
最近有网友问dedecms无法创建rss文件提示:DedeTag Engine Create File False 这个提示一般出现以下情况才会出现:1.模板文件不存在,您可能误删除或者没有正确指定模 ...
- Lua中的常用函数库汇总
lua库函数 这些函数都是Lua编程语言的一部分, 点击这里了解更多. assert(value) - 检查一个值是否为非nil, 若不是则(如果在wow.exe打开调试命令)显示对话框以及输出错误调 ...
- 支持高并发的IIS Web服务器常用设置 II
适用的IIS版本:IIS 7.0, IIS 7.5, IIS 8.0 适用的Windows版本:Windows Server 2008, Windows Server 2008 R2, Windows ...
- Android学习笔记之打钩显示输入的密码
利用EditText作为密码输入框是个不错的选择(只需设置输入类型为textPassword即可),保密且无需担心被盗取.但有时用户也不知道自己输入的是否正确,这时就应该提供一个“显示密码”的复选框, ...
- HNU 12826 Balloons Colors
题目链接:http://acm.hnu.cn/online/?action=problem&type=show&id=12826&courseid=268 #include&l ...
- IOS 页面之间的跳转
1.UINavigationController popToViewController 对应popViewControllerAnimated: 也可以使用: [self.navigationCon ...
- ios 百度地图api 入门
百度地图api 官方教程: http://developer.baidu.com/map/index.php?title=iossdk 这个非常好, 很适合新手 CLLocationCoordinat ...