(六)Spring 中的 JdbcTemplate
目录
概念
JdbcTemplate : 是 Spring 中对持久层(JDBC 技术)一个封装 ;
使用起来和 Dbutuis 很相似 ;(其实 JdbcTemplate 还不如 Dbutils,看着 Spring 的面子,学一下 ;)
配置数据库
//        配置数据库,配置数据源
        DriverManagerDataSource dataSource = new DriverManagerDataSource() ;
//        配置数据库驱动
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
//        设置数据库URI
        dataSource.setUrl("jdbc:mysql:///springDay03");
//        配置管理员账号密码
        dataSource.setUsername("root");
        dataSource.setPassword("root");
创建 JdbcTemplate 对象
//        创建 jdbcTemplate 模板
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource) ;
增删改查代码
跟 Dbutils 操作差不多
增删改,都是调用 update 方法,操作方法跟 Dbutils 基本一致 ;
//        增
        String sql = "insert into user value(?,?,?)" ;
        jdbcTemplate.update(sql,new Object[]{"001","蜡笔小新","123456"}) ;
//        改
        sql = "update user set password = ? where id = ?" ;
        jdbcTemplate.update(sql,new Object[]{"0000","001"}) ;
//        删
        sql = "DELETE from user where  id = ?" ;
        jdbcTemplate.update(sql,"001") ;
在查询的时候, JdbcTemplate  跟 Dbutils 都一样,都提供一个接口,让我们实现我们自己的处理逻辑 ;JdbcTemplate  给出的接口是:RowMapper ;
说 JdbcTemplate  还不如 Dbutils 的原因,就在于:JdbcTemplate  竟然,没有提供基本的实现类给我们。。
查询返回当个结果(
queryForObject(sql,泛型))sql = "select COUNT(*) FROM USER " ;
int num = jdbcTemplate.queryForObject(sql,Long.class).intValue() ;查询返回当个对象(
queryForObject(sql, new RowMapper<泛型>,可变参数)sql = "select * from user where id = ?" ;
User user = jdbcTemplate.queryForObject(sql, new RowMapper<User>() {
@Override
public User mapRow(ResultSet resultSet, int i) throws SQLException {
String name = resultSet.getString("name") ;
String password = resultSet.getString("password") ;
User user = new User() ;
user.setName(name);
user.setPassword(password);
return user;
}
},"1");
查询返回
list集合(query)
sql = "select * from user " ;
List<User> users = jdbcTemplate.query(sql, new RowMapper<User>() {
// 这里的第二个参数是,代表本当前装进list是第几个对象,从0开始计数 ;
@Override
public User mapRow(ResultSet resultSet, int i) throws SQLException {
String name = resultSet.getString("name") ;
String password = resultSet.getString("password") ;
User user = new User() ;
user.setName(name);
user.setPassword(password);
return user;
}
});
(六)Spring 中的 JdbcTemplate的更多相关文章
- Spring中的JDBCTemplate
		
src\dayday\JDBCTestTest package dayday;import com.sun.org.apache.xalan.internal.xsltc.compiler.Templ ...
 - Spring中的JdbcTemplate使用
		
1.引出SpringJDBC的概念 在学习JDBC编程时我们会感觉到JDBC的操作是多么繁琐,那么当我们学习的Hibernate框架时,我们感觉到数据库的操作也变非常简单,提高了开发效率.但是当使用H ...
 - Spring中的JdbcTemplate的使用
		
一.jdbcTemplate的作用 它就是用于和数据库交互的,实现对表的crud.与dbutils相似 二.JdbcTemplate的使用 <dependency> <groupId ...
 - Spring 中的 JDBCTemplate
		
新建一个java工程 写好spring配置文件,直接上代码 <?xml version="1.0" encoding="UTF-8"?> <b ...
 - spring  中的设计模式
		
https://mp.weixin.qq.com/s?__biz=MzU0MDEwMjgwNA==&mid=2247485205&idx=1&sn=63455d2313776d ...
 - Spring中的设计模式学习
		
Spring提供了一种Template的设计哲学,包含了很多优秀的软件工程思想. 1. 简单工厂 又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一. ...
 - Spring中的设计模式
		
[Spring中的设计模式] http://www.uml.org.cn/j2ee/201301074.asp [详解设计模式在Spring中的应用] [http://www.geek521.c ...
 - Spring中使用的设计模式
		
目录 Spring使用的设计模式 1.单例模式 2.原型模式 3.模板模式 4.观察者模式 5.工厂模式 简单工厂模式 工厂方法模式 6.适配器模式 7.装饰者模式 8.代理模式 9.策略模式 S ...
 - 详解设计模式在Spring中的应用
		
设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆. 今天,在IT学习者网站就设计模式的内在价值做一番探讨,并以spring为例进行讲解,只有领略了其设 ...
 
随机推荐
- 【线性代数】6-7:SVD分解(Singular Value Decomposition-SVD)
			
title: [线性代数]6-7:SVD分解(Singular Value Decomposition-SVD) categories: Mathematic Linear Algebra keywo ...
 - Python流程控制和缩进
			
我们语文学写作文,有如果- -,那么- -的句式,同样Python也有这样的句式: #如何这个条件成立了,那就执行下面这个语句 if 条件: 内容1 内容2 else: 内容3 几点说明:
 - W tensorflow/core/platform/cpu_feature_guard.cc:45]
			
W tensorflow/core/platform/cpu_feature_guard.cc:] The TensorFlow library wasn't compiled to use SSE3 ...
 - Geos判断点是否在多边形内
			
使用的geo版本是3.5.1 #include <iostream> #include "geos.h" using namespace std; GeometryFa ...
 - MySQL个人用户的安装配置详解
			
1. 我的版本是 MySQL 5.7.26.0 ,因为据说 MySQL 8 的性能虽然强悍,但是兼容性还是有问题,而且发布时间不够长,没有普及,就暂时用着5.7版本. (1) 下载地址,选择使用msi ...
 - netframework webapi IogAttribute记录request参数和错误信息
			
参考博客 https://www.cnblogs.com/hnsongbiao/p/7039666.html 书写LogFilterAttribute public class LogFilterAt ...
 - FMX开源控件
			
FMX开源控件 这是群友谢顿做的控件,必须赞一个! https://github.com/zhaoyipeng/FMXComponents 这是loki的: https://sourceforge.n ...
 - dll程序开发总结
			
1.修改生成的dll名称 VS2012中选中某个项目,项目--属性--配置属性--连接器--常规--输出文件
 - LC 955. Delete Columns to Make Sorted II
			
We are given an array A of N lowercase letter strings, all of the same length. Now, we may choose an ...
 - kotlin中访问封闭作用内的变量
			
在java中,匿名对象访问封闭作用域内的变量,需要用final 声明变量在java8中,如果只是使用封闭作用域内的变量,该变量并不需要使用final,但是一旦修改值,就需要使用final 来声明变量. ...