*Spring框架对JDBC进行简单的封装。提供了一个JDBCTemplate对象简化JDBC的开发

*步骤:

  1、导入jar包

  2、创建JDBCTemplate对象,以来与数据源DataSource

    *JDBCTemplate temp = new JDBCTemplate(ds);

  3、调用jdbcT的方法来完成CRUD方法

    *updata():执行DML语句,增删改

    *queryForMap():查询结果将结果封装map集合

     queryForLits():查询结果将结果集封装成为list集合

     query():查询结果,将结果封装为JavaBean对象

     queryForObject():查询结果,将结果封装为对象

package cn.it.jdbctempl;

import cn.it.Duird.JDBCUtils;
import org.springframework.jdbc.core.JdbcTemplate; //入门
public class JdbcTmpl {
public static void main(String[] args) {
//导入jar包 进入工作空间,也就是选择add as Module
//创建jdbcTemplat
JdbcTemplate tmpl = new JdbcTemplate(JDBCUtils.getDataSource());
//调用方法
String sql = "UPDATE db1 SET age = 3 WHERE id =?";
int count = tmpl.update(sql,2);
System.out.println(count);
} }

tips:

利用BeanPropertyRowMapper可以直接有rowmap方,查询所有记录将其封装为对象的list集合
package cn.it.jdbctempl;

import cn.it.Duird.JDBCUtils;
import jdk.nashorn.internal.scripts.JD;
import org.junit.Test;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;

public class JdbcTmplDemo {
//直接在声明全员变量 这样就不用每个方法都写一次
private final JdbcTemplate template= new JdbcTemplate(JDBCUtils.getDataSource());

// @Test
// public void test(){
// //modify
// //写一个测试类:这样就不用psvm了 但是要注意 绿色不一样的没错
// //定义sql语句
// String sql = "";
// int count = template.update(sql);
// System.out.println(count);
//
// }
// @Test
// public void test1(){
// //insert
// //预编译,防止sql注入 注意where时需要
// String sql = "?,?,?";
// //number 是int型的字符
// int count = template.update(sql, number, "字符串", number);
// System.out.println(count);
// }
// @Test
// public void test02(){
// //delect
// //number 是int型的字符 用于where
// String sql = "?";
// int count = template.update(sql, number);
// System.out.println(count);
// }

//4 查询一条记录 而map集合长度只能是1,将列名为K,值为V MAP<K,V>
@Test
public void test04(){
String sql = "select * from db1 where id = ?";
Map<String,Object> map = template.queryForMap(sql,3);
System.out.println(map);
//{id=3, age=3, name=123, time=null, password=null}
}
@Test
public void test05(){
String sql = "select * from db1";
List<Map<String, Object>> list = template.queryForList(sql);
//iter:快捷键 是增强for的快捷键
//而这个是将每条数据存入map集合,再将这个map集合存放在list里面
for (Map<String, Object> stringObjectMap : list) {
System.out.println(stringObjectMap);
//{id=1, age=12, name=123, time=null, password=null}
//{id=2, age=3, name=123, time=null, password=null}
//{id=3, age=3, name=123, time=null, password=null}
//{id=4, age=12, name=213, time=null, password=null}
//{id=5, age=12, name=123, time=null, password=null}
//{id=6, age=15, name=12, time=null, password=null}
//{id=7, age=15, name=tt, time=null, password=null}
//{id=8, age=28, name=tt, time=null, password=null}
//{id=9, age=28, name=tt, time=null, password=null}
//{id=10, age=15, name=tt, time=null, password=root}
//{id=11, age=20, name=ttt, time=null, password=root}
}

}

//06 数据存在javabean里面,然后从javabean放入list
@Test
public void test06(){
String sql = "SELECT * FROM db1";
//这个方法非常难受 因为需要写好多好多- - 这里的mapRow其实还可以有方法
// List<Object> list= template.query(sql, new RowMapper<Object>() {
// @Override
// public Object mapRow(ResultSet rs, int i) throws SQLException {
// return null;
// }
// });
//方法二:利用BeanPropertyRowMapper可以直接有rowmap方法
//查询所有记录将其封装为对象的list集合
List<userList> list = template.query(sql,new BeanPropertyRowMapper<userList>(userList.class));
for (userList userList : list) {
System.out.println(userList);
}
//注意如果sql语句写错的话,也会出现报错的情况
//在user没有写入getset方法和tostring方法时
//可以成功运行 但是输出的是data的地址
/*
cn.it.jdbctempl.userList@5c18298f
cn.it.jdbctempl.userList@31f924f5
cn.it.jdbctempl.userList@5579bb86
cn.it.jdbctempl.userList@5204062d
cn.it.jdbctempl.userList@4fcd19b3
cn.it.jdbctempl.userList@376b4233
cn.it.jdbctempl.userList@2fd66ad3
cn.it.jdbctempl.userList@5d11346a
cn.it.jdbctempl.userList@7a36aefa
cn.it.jdbctempl.userList@17211155
cn.it.jdbctempl.userList@b3d7190
*/

}
@Test
public void test07(){
//打印所有的记录条数 queryForObject
String sql = "select count(id) from db1";
Long total = template.queryForObject(sql, long.class);
System.out.println(total);
}
}

 
 

Spring框架JDBC的更多相关文章

  1. 跟着刚哥学习Spring框架--JDBC(六)

    Spring的JDBC框架 Spring JDBC提供了一套JDBC抽象框架,用于简化JDBC开发. Spring主要提供JDBC模板方式.关系数据库对象化方式.SimpleJdbc方式.事务管理来简 ...

  2. Spring框架——JDBC方式搭建项目

    学习Spring框架,使用JDBC的方式配置方式搭建一个项目,进行项目总结. 首先,采用MVC设计模式思想,搭建项目目录. 然后各个目录文件下面的相关源码附上: controller目录: impor ...

  3. Spring框架——JDBC与事务管理

    JDBC JDBCTemplate简介 XML配置JDBCTemplate 简化JDBC模板查询 事务管理 事务简介 Spring中的事务管理器 Spring中的事务管理器的不同实现 用事务通知声明式 ...

  4. spring框架-jdbc

    一.实体层的不同名字    entity 实体类 :就是和数据库表一一对应的JavaBean  pojo 简单的java对象:任何应用场景的JavaBean  po 持久化对象 :就是和数据库表一一对 ...

  5. spring 框架jdbc连接数据库

    user=LF password=LF url=jdbc:oracle:thin:@localhost:1521:orcl driver=oracle.jdbc.driver.OracleDriver ...

  6. 跟着刚哥学习Spring框架--创建HelloWorld项目(一)

    1.Spring框架简介 Spring是一个开源框架,Spring是在2003年兴起的一个轻量级的开源框架,由Rod johnson创建.主要对JavaBean的生命周期进行管理的轻量级框架,Spri ...

  7. 跟着刚哥学习Spring框架--AOP(五)

    AOP AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善.OOP引入 ...

  8. 跟着刚哥学习Spring框架--通过注解方式配置Bean(四)

    组件扫描:Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件. 特定组件包括: 1.@Component:基本注解,识别一个受Spring管理的组件 2.@Resposit ...

  9. 跟着刚哥学习Spring框架--通过XML方式配置Bean(三)

    Spring配置Bean有两种形式(XML和注解) 今天我们学习通过XML方式配置Bean 1. Bean的配置方式 通过全类名(反射)的方式   √ id:标识容器中的bean.id唯一. √ cl ...

  10. 跟着刚哥学习Spring框架--Spring容器(二)

    Spring容器 启动Spring容器(实例化容器) -- IOC容器读取Bean配置创建Bean实例之前,必须对它进行实例化(加载启动),这样才可以从容器中获取Bean的实例并使用.  Bean是S ...

随机推荐

  1. Vue 基础学习总结

    介绍 Vue.js 中文文档地址:https://cn.vuejs.org/guide/introduction.html#what-is-vue Vue.js 是什么 Vue (读音 /vjuː/, ...

  2. openssh编译rpm包(防火防盗防漏扫)

    参考链接:https://www.jianshu.com/p/0882b0502960 openssh下载链接: wget https://cdn.openbsd.org/pub/OpenBSD/Op ...

  3. 【Java并发007】原理层面:ReentrantLock中lock()、unlock()全解析

    一.前言 Java线程同步两种方式,synchronized关键字和Lock锁机制,其中,AQS队列就是Lock锁实现公平加锁的底层支持. 二.AQS源码对于lock.lock()的实现 2.1 AQ ...

  4. C++初阶(封装+多态--整理的自认为很详细)

    继承 概念:继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类.继承呈现了面向对象程序设计的层次结构,体现了由简单 ...

  5. day01-计算机的本质

    计算机的本质 计算机又称为"电脑": 通电的大脑 意味着我们人类希望计算机通电之后可以跟人脑一样思考问题.解决问题 计算机存储数据的本质 计算机是基于电工作,而电信号只有高低电平两 ...

  6. 一个宁静祥和没有bug的下午和SqlSession的故事

    1 背景 这是一个安静祥和没有bug的下午.作为一只菜鸡,时刻巩固一下基础还是很有必要的,如此的大好时机,就让我来学习学习mybatis如何使用. 这可和我看到的不一样啊,让我来看看项目里怎么写的. ...

  7. mysql查询结果拼接树结构(树节点的移动)

    mysql查询结果拼接树结构(树节点的移动) 思路:单表内查询全部数据,在业务层内递归拼接树结构. 前端用的是element的Tree 树形控件: 树结构实体: @Data @AllArgsConst ...

  8. day 19 分组查询 & having和where区别

    day19 分组查询group by having用法 用于分组关键字(group by)后面 用于对分组之后的结果集进行筛选 having关键字后面可以使用聚合函数 having和where的区别 ...

  9. IdentityServer4的最佳使用

    简介   本人做微服务项目也有一段时间了,在微服务中让我感触颇深的就是这个IdentityServer4了,ID4(IdentityServer4的简称)中涉及的概念颇多,本文不谈概念(我怕读者没耐心 ...

  10. js将时间戳转成时间格式

    let start_time = 1653007401082, date = new Date(+start_time), Y = date.getFullYear() + '-', M = (dat ...