SpringJDBC——jdbcTemplate模板
一.定义
Spring框架对jdbc进行了封装,提供的一个JDBCTemplated对象简化jdbc开发。
使用步骤
1 导包spring-beans-5.0.0-RELEASE.jar,spring-core-5.0.0-RELEASE.jar,spring-jdbc-5.0.0-RELEASE.jar,spring-tx-5.0.0-RELEASE.jar。辅助类包commons-logging-1.2.ja。
2 创建JDBCTemplate 对象 依赖于DataSource
3 调用JDBCTemplate 方法 CRUD(增删改查)
使用方法
update,增、删、改,DML语句
queryForMap() 查询结果封装为map 集合,列名 key value
queryForList() 查询结果封装List 集合
query() 查询结果,是JavaBean对象
queryForObject() 将结果封装成对象
入门代码:
public class Templatedemo1 {
public static void main(String[] args) {
//1.导包
//2.创建JDBCTemplate对象,依赖于DataSource
JdbcTemplate template=new JdbcTemplate(JDBCUtils.getDataSource());
//3.调用JDBCTemplate方法
String sql="insert into coount values(3,?,?)";
int i = template.update(sql, "abcd", 1000);
System.out.println(i);
}
}
二.Junit单元测试,实现让方法可以独立运行:
public class Templatedemo2 {
//创建template对象
JdbcTemplate template=new JdbcTemplate(JDBCUtils.getDataSource());
//Junit单元测试,可以让方法独立运行
@Test
//1.修改emp表中id为1的salary为10000
public void test1(){
//创建JDBCTemplate对象,依赖于DataSource
String sql="update emp set salary=10000 where id=?";
int i = template.update(sql, 1002);
System.out.println(i);
}
@Test
//2.给表emp添加信息
public void test2(){
String sql="insert into emp (id,ename,dept_id) values (?,?,?)";
int i = template.update(sql, 1016, "du", 10);
System.out.println(i);
}
@Test
//3.查询所有,封装成LIst集合
public void test3(){
String sql="select * from emp";
List<Map<String, Object>> maps = template.queryForList(sql);
for (Map<String, Object> stringObjectMap: maps){
System.out.println(stringObjectMap);
}
}
}
//4.删除添加的数据
@Test
public void test4(){
String s="delete from emp where id=1110";
int i = template.update(s);
System.out.println(i);
}
//5.查询id为2的记录,将其封装为Map集合
//注意这个方法查询的结果集的长度孩子能是1 DQL语句查询
@Test
public void test5(){
String s="select * from coount where id=2";
Map<String, Object> map = template.queryForMap(s);
System.out.println(map);
}
//6.查询总记录数
@Test
public void test6(){
String s="select count(id) from emp";
Long l = template.queryForObject(s, Long.class);
System.out.println(l);
}
}
Templatedemo2:
@Test
//7.查询emp表的记录,将其封装到Emp对象的List集合
public void test7(){
String sql="select * from emp";
List<Emp> list = template.query(sql, new BeanPropertyRowMapper<Emp>(Emp.class));
for (Emp emp:list){
System.out.println(emp);
}
}
Emp:
public class Emp {
private int id;
private String ename;
private Integer job_id;
private Integer mgr;
private Date joindate;
private Double salary;
private Double bonus;
private Integer dept_id;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public Integer getJob_id() {
return job_id;
}
public void setJob_id(Integer job_id) {
this.job_id = job_id;
}
public Integer getMgr() {
return mgr;
}
public void setMgr(Integer mgr) {
this.mgr = mgr;
}
public Date getJoindate() {
return joindate;
}
public void setJoindate(Date joindate) {
this.joindate = joindate;
}
public Double getSalary() {
return salary;
}
public void setSalary(Double salary) {
this.salary = salary;
}
public Double getBonus() {
return bonus;
}
public void setBonus(Double bonus) {
this.bonus = bonus;
}
public Integer getDept_id() {
return dept_id;
}
public void setDept_id(Integer dept_id) {
this.dept_id = dept_id;
}
@Override
public String toString() {
return "Emp{" +
"id=" + id +
", ename='" + ename + '\'' +
", job_id=" + job_id +
", mgr=" + mgr +
", joindate=" + joindate +
", salary=" + salary +
", bonus=" + bonus +
", dept_id=" + dept_id +
'}';
}
}
SpringJDBC——jdbcTemplate模板的更多相关文章
- JdbcTemplate模板使用
1.添加模板的配置文件 在spring的配置文件中加入如下代码 <bean class="org.springframework.jdbc.core.JdbcTemplate" ...
- SpringJDBC :jdbcTemplate在连接是出现 org/springframeworkbc/core/JdbcTemplate : Unsupported major.minor version 52.0 异常解决
原因是这个在jdk9版本才能使用,需更新jdk版本. 更新jdk9之后在idear的配置: 第一步:File---->Project Structure---->Project 第二步: ...
- 05-spring整合jdbc-jdbc模板对象JdbcTemplate
1 演示JdbcTemplate模板对象 1 导包 2 准备数据库 3 书写UserDao package www.test.dao; import java.util.List; import ww ...
- 【使用篇二】SpringBoot使用JdbcTemplate操作数据库(12)
Spring对数据库的操作在jdbc上面做了深层次的封装,提供了JdbcTemplate模板. 在SpringBoot使用JdbcTemplate很简单: 引入数据库驱动包(mysql或oracle) ...
- Spring——JdbcTemplate
一.JdbcTemplate介绍: 为了使 JDBC 更加易于使用,Spring 在 JDBCAPI 上定义了一个抽象层, 以此建立一个JDBC存取框架,Spring Boot Spring Data ...
- 【Java EE 学习 52】【Spring学习第四天】【Spring与JDBC】【JdbcTemplate创建的三种方式】【Spring事务管理】【事务中使用dbutils则回滚失败!!!??】
一.JDBC编程特点 静态代码+动态变量=JDBC编程. 静态代码:比如所有的数据库连接池 都实现了DataSource接口,都实现了Connection接口. 动态变量:用户名.密码.连接的数据库. ...
- JDBCTemplate基础学习
JDBCTemplate:spring提供的用于操作数据库的模板,类似DbUtils.使用时必须设置数据源(DataSource):数据源如DBCP.C3P0等 一.JDBCAPI简单使用Demo 1 ...
- spring jdbcTemplate源码剖析
本文浅析 spring jdbcTemplate 源码,主要是学习其设计精髓.模板模式.巧妙的回调 一.jdbcTemplate 类结构 ①.JdbcOperations : 接口定义了方法,如 &l ...
- 开涛spring3(7.2) - 对JDBC的支持 之 7.2 JDBC模板类
7.2 JDBC模板类 7.2.1 概述 Spring JDBC抽象框架core包提供了JDBC模板类,其中JdbcTemplate是core包的核心类,所以其他模板类都是基于它封装完成的,JDB ...
随机推荐
- svn服务器搭建及使用(一)
这里郑重感谢分享作者的辛苦:http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2407610.html Subversion是优秀的版本控制工 ...
- 【转载】JVM系列一:JVM内存组成及分配
java内存组成介绍:堆(Heap)和非堆(Non-heap)内存 按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配.堆是在 Java 虚拟机启动时 ...
- 戴尔poweredge r730服务器配置以及系统安装
第一次给服务器安装的是ubantu系统: 首先我们开机进入小型BIOS设置一下RAID,或者进入服务器管理系统,在系统的BIOS中进行RAID设置: 开机后当看到出现< Ctrl > &l ...
- idea查看jar包是否存在
idea在project目录下如下图(1),是总的pom文件,定义了四个子模块共用的依赖,并且其中定义了四个子模块,,每个模块都有各自的pom.xml文件.结构目录只有一个总的lib库. 但是可能在s ...
- iOS 获取当前正在显示的ViewController
//获取当前屏幕显示的viewcontroller - (UIViewController *)getCurrentVC { UIViewController *result = nil; UIWin ...
- C++ operator new 重载(两个参数)
#include <iostream> class A { public: int i; public: void* operator new (size_t a, size_t b) { ...
- 2019-04-09-day028-OSI七层模型
内容回顾 概念 架构 : B/S C/S 硬件 : 网卡 :在计算机中 帮助我们完成网络通信 交换机 :在局域网内多台机器之间通信 路由器 :多个局域网之间的机器之间的通信 局域网 :一个区域内的多台 ...
- 2019-03-29-day022-封装与类方法与静态方法
昨日回顾 抽象类 规范代码,规定子类必须实现某个方法的名字 不能实例化 from abc import ABCMeta, abstractmethod class 抽象类名(metaclass=ABC ...
- java.lang.OutOfMemoryError: GC overhead limit exceeded
前端请求:{"code":400,"message":"Handler dispatch failed; nested exception is ja ...
- python day 07-数据类型补充,集合,深浅拷贝
一.基础数据类型补充 1.列表转字符串 a='A'.join(['c','c','s']) print(a) 2.循环删除列表中的每⼀一个元素 lst=['asdf','dftgst','zsdrfs ...