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 ...
随机推荐
- python笔记2-变量
变量 存东西所用 #定义变量 name='feifei'#定义变量,字符串 age=18.9#整型或者小数定义变量不需要加引号 print(name) print(age) name2="w ...
- 「版本升级」MyEclipse CI 2018.12.0正式发布
新版本MyEclipse为WildFly 14新增一个新的服务器连接器,改进性能并新增一些Java 10修复程序.新版本为IDE做了几个核心修复,这是MyEclipse 2018一个更棒的升级. [M ...
- centos中PATH环境变量查看和修改
PAHT环境变量 :定义的是系统搜索命令的路径.<就是自己写的程序不打绝对路径就可以执行,必须放到 $PATH这个文件中>查看命令:echo $PATH 以添加mongodb server ...
- 软件工程项目程序:WC
1:代码来源:http://yuncode.net/code/c_5087c8e4cd77190 2:Platform:Eclipse Language:Java 3:Bug:暂时没有 4. Func ...
- vs2017 乱码
vs2017默认编码方式并不是UTF-8,似乎是UTF-16,当我们使用中文时,经常会发生乱码. 解决方法:工具->扩展和更新->联机,然后搜索ForceUTF8 我这里已经安装了,没安装 ...
- Oracle远程登录命令
sqlplus登陆方式 sqlplus有几种登陆方式 比如: 1.C: > sqlplus "/as sysdba" C: > sqlplus / as sysdba ...
- springMVC学习五(转发和乱码)
摘录http://www.cnblogs.com/xdp-gacl/p/3798347.html http://www.cnblogs.com/xdp-gacl/p/3798347.html 四个很重 ...
- 20165326 java第八周学习笔记
第八周学习笔记 知识点总结 1.进程与线程 进程:程序的一次动态执行过程 区别:进程和线程的区别? 进程是资源的分配和调度的一个独立单元,而线程是CPU调度的基本单元 同一个进程中可以包括多个线程,并 ...
- day 69-70 一对一 一对多 多对一联表查询
day 69 orm操作之表关系,多对多,多对一 多对一/一对多, 多对多{类中的定义方法} day69 1. 昨日内容回顾 1. 单表增删改查 2. 单表查询API 返回QuerySet对象的: 1 ...
- 《uniGUI for cBuilder入门到精通》新书预定
<uniGUI for cBuilder入门到精通>火热预定中,从零开始带你入瓮带你飞,手把手教你如何快速安装,开发和部署一个web系统,前十名用户售价暂定100元,后续价格每本200元, ...