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 ...
随机推荐
- 最短路径:Dijkstra & Floyd 算法图解,c++描述
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- jdk8-lanbda方法引用和构造引用
1.方法引用概念及实例 1.对象实例方法 语法格式: 对象::实例方法名称 注意点: 实例方法必须和被实现的接口中定义的方法的参数列表和返回值一致.一般适合于一个方法就实现了的. 2.类::静态方法 ...
- gc图波峰波谷一直上升问题
垃圾回收曲线,波峰和波谷一直上升.正常是波峰波谷在同一水平线上,可以想象如果程序继续运行下去,老年代内存回收后也不断上升,当达到老年代满了的时候,就会报内存溢出错误. 用jmap -histo pid ...
- 一个灵活的AssetBundle打包工具
尼尔:机械纪元 上周介绍了Unity项目中的资源配置,今天和大家分享一个AssetBundle打包工具.相信从事Unity开发或多或少都了解过AssetBundle,但简单的接口以及众多的细碎问题 ...
- 读取文件时,使用file.eof()判断结尾注意事项
今天写一个小功能需要读取文件,在判断文件结尾时使用了以下语句: while(infile.eof() && infile.good()) { infile.read((); encod ...
- centos7设置默认的内核启动
centos内核启动时会有3个选项,只有一个可以正常登陆到图形界面的桌面: 下面是设置默认内核的顺序: centos的内核文件在/boot/grub2目录下 1.如果想要修改以上三项的显示顺序,只需要 ...
- REST easy with kbmMW #16 – Multiple servers using HTTP.sys transport
前文写过使用HTTP.sys转输层(TkbmMWHTTPSysServerTransport),实现一个kbmMW应用服务器. 如果在一台服务器上,同时运行多个,基于TkbmMWHTTPSysServ ...
- 2019-03-26-day019-面向对象耦合与组合
作业 #对象的耦合 class Circle: def __init__(self,r): self.r = r def area(self): return 3.14*self.r**2 def p ...
- scrapy-CrawlSpider的rules使用规则
1.allow设置规则的方法:要能够限制在我们想要的url上面.不要跟其他的url产生相同的正则表达式即可: 2.什么情况下使用follow:如果在爬取页面的时候,需要将满足当前条件的url再进行跟进 ...
- swift3.0 存取json数据到沙盒
do { //将json保存到本地 let jsonData = try JSONSerialization.data(withJSONObject: dict, options: .prettyPr ...