*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. 本地GoLand编辑与调试远端服务器上的代码

    Goland是专为Go开发人员构建的跨平台IDE,功能非常强大,拥有强大的代码洞察力,帮助所有Go开发人员即时错误检测和修复建议,快速和安全的重构,一步撤销,智能代码完成,死代码检测和文档提示,让您创 ...

  2. Codeforces Round #834 (Div. 3) A-G

    比赛链接 A 题目 知识点:模拟. 确定开头字母,然后循环比较即可. 时间复杂度 \(O(n)\) 空间复杂度 \(O(n)\) 题解 #include <bits/stdc++.h> # ...

  3. <四>虚函数 静态绑定 动态绑定

    代码1 class Base { public: Base(int data=10):ma(data){ cout<<"Base()"<<endl; } v ...

  4. PLSql在Oracle中创建表空间

    create tablespace db_test --表空间名 datafile 'D:\oracle\product\11.2.0\dbhome_1\oradata\orcl\test.dbf' ...

  5. 《MySQL必知必会》知识汇总二

    六.用通配符进行过滤 本章介绍什么是通配符.如何使用通配符以及怎样使用LIKE操作符进行通配搜索 LIKE操作符 百分号(%)通配符 select prod_id,prod_name from pro ...

  6. 【每日一题】【list转int数组】【Lambda的简化-方法引用】2022年1月15日-NC45 实现二叉树先序,中序和后序遍历

    描述 给定一棵二叉树,分别按照二叉树先序,中序和后序打印所有的节点.   数据范围:0 \le n \le 10000≤n≤1000,树上每个节点的val值满足 0 \le val \le 1000≤ ...

  7. java中的数值运算

    本文主要是掌握java中的整除和取模的运算: public class MathOperate { public static void main(String[] args) { // 取整运算 S ...

  8. python selenium 控制网页中内置滚动条操作

    1.首先必须是内置滚动条,而非网页自带滚动条,如图所示 2.F12,找到内置滚动条所在的div标签的class name 3. js='document.getElementsByClassName( ...

  9. Wireshark网卡无法找到或没有显示的问题

    问题背景 最近在处理公司内网域名解析的问题,发现配置好一个新域名在内网环境可以正常解析成内网IP,但使用深信服VPN却无法正常解析,并且其他域名使用深信服VPN可以正常解析,所以参考<内网域名解 ...

  10. 论文解读(CAN)《Contrastive Adaptation Network for Unsupervised Domain Adaptation》

    论文信息 论文标题:Contrastive Adaptation Network for Unsupervised Domain Adaptation论文作者:Guoliang Kang, Lu Ji ...