数据准备

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>spring5</artifactId><version>1.0-SNAPSHOT</version><name>spring5</name><properties><maven.compiler.target>1.8</maven.compiler.target><maven.compiler.source>1.8</maven.compiler.source><junit.version>5.7.1</junit.version></properties><dependencies><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId><version>${junit.version}</version><scope>test</scope></dependency><dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-engine</artifactId><version>${junit.version}</version><scope>test</scope></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.19</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.6</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>5.0.5.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.0.5.RELEASE</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>2.2.1</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.0.6.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.0.5.RELEASE</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.13.1</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.13.1</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.13.1</version></dependency><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.4</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.5</version></dependency></dependencies><build><plugins></plugins></build>
</project>

1.1 JdbcTemplate概述

它是spring框架中提供的一个对象,是对原始繁琐的Jdbc API对象的简单封装。spring框架为我们提供了很多的操作 模板类。例如:操作关系型数据的JdbcTemplate和HibernateTemplate,操作nosql数据库的RedisTemplate,操 作消息队列的JmsTemplate等等。

1.2 JdbcTemplate开发步骤

1 导入spring-jdbc和spring-tx坐标

<!--导入spring的jdbc坐标-->
<dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.0.5.RELEASE</version>
</dependency>
<!--导入spring的tx坐标-->
<dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>5.0.5.RELEASE</version>
</dependency>

2 创建数据库表和实体
3 创建JdbcTemplate对象
4 执行数据库操作

1.3 JdbcTemplate快速入门

在数据库中准备好数据

public class test {//测试jdbc@Testpublic void test1() throws PropertyVetoException {//创建数据源对象ComboPooledDataSource dataSource = new ComboPooledDataSource();dataSource.setDriverClass("com.mysql.cj.jdbc.Driver");dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/day17");dataSource.setUser("root");dataSource.setPassword("12345678");JdbcTemplate jdbcTemplate = new JdbcTemplate();//设置数据源jdbcTemplate.setDataSource(dataSource);//执行语句int row = jdbcTemplate.update("insert into day22 value ( ?,? ,? ) ", null,"lisi", "123456");System.out.println(row);}
}

1.4 Spring产生JdbcTemplate对象

我们可以将JdbcTemplate的创建权交给Spring,将数据源DataSource的创建权也交给Spring,在Spring容器内部将 数据源DataSource注入到JdbcTemplate模版对象中,配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--    配置数据源对象--><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="com.mysql.cj.jdbc.Driver"/><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/day17"/><property name="user" value="root"/><property name="password" value="12345678"/></bean><!--    配置JDBC模板对象--><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><property name="dataSource" ref="dataSource"/></bean></beans>
    @Testpublic void test2(){ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");JdbcTemplate jdbcTemplate = app.getBean(JdbcTemplate.class);int row = jdbcTemplate.update("insert into day22 value ( ?,? ,? ) ", null,"mazi", "123456");System.out.println(row);}

继续抽取配置applicationContext.xml文件,减少耦合性

  • 创建jdbc.properties
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/day17
jdbc.name=root
jdbc.password=12345678
  • 在applicationContext.xml 引入外部文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!--    引入外部文件--><context:property-placeholder location="jdbc.properties"/><!--    配置数据源对象--><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="${jdbc.driver}"/><property name="jdbcUrl" value="${jdbc.url}"/><property name="user" value="${jdbc.name}"/><property name="password" value="${jdbc.password}"/></bean><!--    配置JDBC模板对象--><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><property name="dataSource" ref="dataSource"/></bean></beans>
package com.study.test;import com.study.doman.Users;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import java.util.List;/*** @author Alina* @date 2022年03月30日 7:14 下午*/
//使用spring集成Junit进行测试
@RunWith(SpringJUnit4ClassRunner.class)
//指定配置文件
@ContextConfiguration("classpath:applicationContext.xml")
public class jdbcTemplateTest {//注入对象@Autowiredprivate JdbcTemplate jdbcTemplate;@Testpublic void test1(){int row = jdbcTemplate.update("update day22 set password = ? where username = ?", 123123, "tom");System.out.println(row);}@Testpublic void test2(){int row = jdbcTemplate.update("delete from day22 where username = ?",  "tom");System.out.println(row);}//查询全部@Testpublic void test3(){List<Users> User = jdbcTemplate.query("select * from day22", new BeanPropertyRowMapper<Users>(Users.class));System.out.println(User);}//查询一个@Testpublic void test4(){Users user = jdbcTemplate.queryForObject("select * from day22 where username = ?", new BeanPropertyRowMapper<>(Users.class), "张三");System.out.println(user);}@Test//查询行数public void test5(){Long user = jdbcTemplate.queryForObject("select count(*) from day22 where username = ?", Long.class, "张三");System.out.println(user);}}

spring框架(五)之JdbcTemplate基本使用相关推荐

  1. Day3-Spring的事务管理、Spring框架的JDBC模板

    今天内容 1. Spring框架的AOP之注解的方式2. Spring框架的JDBC模板3. Spring框架的事务管理 案例一:使用Spring框架的AOP技术对DAO层的功能进行增强 案例一:使用 ...

  2. spring框架测试题

    章节测验 1.spring基本应用 1.[单选题] 以下关于Spring核心容器相关说法错误的是(). A.Spring框架的所有功能都是通过其核心容器来实现的 B.创建BeanFactory实例时, ...

  3. Spring框架 JdbcTemplate类 @Junit单元测试,可以让方法独立执行 如:@Test

    1 package cn.zmh.PingCe; 2 3 import org.junit.Test; 4 import org.springframework.jdbc.core.BeanPrope ...

  4. Java普通类获取Spring框架Bean 的五种方法

    方法一:在初始化时保存ApplicationContext对象 代码: ApplicationContext ac = new FileSystemXmlApplicationContex(" ...

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

    Spring JDBC     * Spring框架对JDBC的简单封装.提供了一个JDBCTemplate对象简化JDBC的开发     * 步骤:         1. 导入jar包        ...

  6. Spring框架(下)JdbcTemplate、声明式事务管理

    Spring框架(下)JdbcTemplate.声明式事务管理 (一)使用JdbcTemplate 1.概述 为了使JDBC更加易于使用,Spring在JDBC API上定义了一个抽象层,以此建立一个 ...

  7. Spring框架-JdbcTemplate

    1.概念和准备 1.1 什么是 JdbcTemplate Spring 框架对JDBC进行封装,使用 JdbcTemplate 方便实现对数据库操作 1.2 准备工作 引入依赖: `spring-jd ...

  8. Spring框架(五):Spring事务简述(注解方式)

    一.Spring事务的概述 事务的作用是什么? 简单来说,就是在数据层保障一系列的数据库操作同成功同失败(提交和回滚) Spring事务作用︰在数据层或[业务层]保障一系列的数据库操作同成功同失败. ...

  9. Spring5框架基础详解(五)(JdbcTemplate概念和准备、jdbcTemplate操作数据库添加功能、修改和删除功能、查询功能)

    文章目录 一.JdbcTemplate是什么和准备工作 1.1.引入相关maven依赖 1.2在spring配置文件配置数据库连接 1.3配置JdbcTemplate对象,注入DateSource 1 ...

最新文章

  1. 斯坦福CS520 | 知识图谱到底是什么?从各顶会看知识图谱定义
  2. Linux 内核抓包功能实现基础(四) 手动查找邻居缓存填充MAC地址
  3. [JSOI2007]文本生成器
  4. SLAM: 图像角点检测的Fast算法(时间阈值实验)
  5. Python 连接redis密码中特殊字符问题
  6. 互联网晚报 | 11月25日 星期四 | 花呗启动品牌隔离;小米MIUI全球月活用户突破5亿;《长津湖》成中国影史票房冠军...
  7. spring-boot集成elastic-job 并实现http类型作业
  8. 静态网页怎么用html语言编写,简单html静态网页代码 用html编写一个静态网页
  9. steam邮件认证出现Access Denied You don't have permission to....
  10. C# 标准ASCII 码表
  11. 【python 监控报警】错误日志监控并钉钉报警
  12. android中的ems的真正含义
  13. (01) Apache Felix 入门 - 01
  14. Frida—HOOK 学习笔记2
  15. python线性回归预测pm2.5_基于随机森林算法的PM2.5预测
  16. 插件分享 | 简单免杀绕过和利用上线的 GoCS
  17. 广告投放方案-精准广告投放方案应该怎么做?
  18. 第一次参加数学建模有感
  19. java多级审批流程_[SharePoint 工作流] 如何设计一个通用的多级多审核工作流程(三):工作流开发...
  20. 好程序员web前端分享移动前端开发和web前端开发的区别

热门文章

  1. 第三十三期:使用wireshark抓包分析-抓包实用技巧
  2. lwip+freeRTOS 故障容错 客户端主动发起连接
  3. ETH—Lwip以太网通信
  4. 传送,条件加速 Learn Unreal Engine (with C++)
  5. luogu4365 秘密袭击 (生成函数+线段树合并+拉格朗日插值)
  6. POJ 3087 Shuffle'm Up (模拟+map)
  7. MyEclipse下安装MyBatis Generator代码反向生成工具
  8. 【翻译】Pro.Silverlight.5.in.CSharp.4th.Edition - 第三章 布局 03
  9. 如何在Linux下安装nginx
  10. 母版事件中注册javascript脚本