SpringBoot整合Junit

实现步骤

  1. 搭建SpringBoot工程
  2. 引入starter-test起步依赖
  3. 编写测试类
  4. 添加测试相关注解
    • @RunWith(SpringRunner.class)
    • @SpringBootTest(classes=启动类.class)
  5. 编写测试方法



SpringBoot整合Redis(跳过)

实现步骤

  1. 搭建SpringBoot工程
  2. 引入redis起步依赖
  3. 配置redis相关属性
  4. 注入RedisTemplate模板
  5. 编写测试方法,测试

SpringBoot整合MyBatis

实现步骤

  1. 搭建SpringBoot工程
  2. 引入mybatis起步依赖,添加mysql驱动
  3. 编写DataSource和MyBatis相关配置
  4. 定义表和实体类
  5. 编写dao和mapper文件/纯注解开发
  6. 测试

com.itheima.springbootmybatis.domain.User

com.itheima.springbootmybatis.SpringbootMybatisApplication

注解版

XML配置版

application.yml

# datasource数据源配置

spring:
datasource:
url: jdbc:mysql:///ssm
username: root
password: 3306
driver-class-name: com.mysql.cj.jdbc.Driver # mybatis配置
# mapper-location相当于XML中的<property name="mapperLocation>扫描Mapper层的配置文件
# type-aliases-package相当于XML中的<property name="typeAliasesPackage>别名配置,一般取其下实体类类名作为别名
mybatis:
mapper-locations: classpath:mapper/*Mapper.xml #mapper的映射文件路径
type-aliases-package: com.itheima.springbootmybatis.domain
# config-location: #指定mybatis的核心配置文件

com.itheima.springbootmybatis.mapper.UserXmlMapper

package com.itheima.springbootmybatis.mapper;

import com.itheima.springbootmybatis.domain.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import java.util.List; @Mapper
@Repository
public interface UserXmlMapper { List<User> selectUserByIds(@Param("ids") List<Integer> ids); int updateUserSet(User user); List<User> selectUsersTrim(User user); List<User> selectUsersChoose(User user); /*
* 这个方法可以根据不同的条件来查询数据
* 如果有username,根据username去查
* 如果有password,根据password去查
* 如果两个都有,根据username和password去查询
* */
List<User> selectUsersIF(User user); //根据username模糊查询
List<User> findAllUsersByUsername(String username); //分页查询
List<User> findAllUsersByPage(Integer pageNum); //根据id查询用户
User selectUserById(Integer id); //根据id删除用户
Integer deleteUserById(Integer id); //修改用户
int updateUser(User user); //新增用户
int saveUser(User user); //查询所有
List<User> findAllUsers(); }

sources/mapper/UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itheima.springbootmybatis.mapper.UserXmlMapper">
<insert id="saveUser">
insert into user (username,password) values (#{username},#{password})
</insert> <update id="updateUser">
update user set username = #{username},password = #{password} where id = #{id}
</update> <update id="updateUserSet" parameterType="com.itheima.springbootmybatis.domain.User">
update user
<set>
<if test="username != null and username !=''">
username = #{username},
</if>
<if test="password != null and password !=''">
password = #{password}
</if>
</set>
where id = #{id}
</update> <delete id="deleteUserById">
delete from user where id = #{id}
</delete> <!-- 写sql语句 -->
<!--
id:mapper接口中的方法名
resultType:方法的返回值类型,如果是entity类型,需要写全类名
parameterType:方法的入参的类型,可以省略
#{id}:代表方法的入参,类似于之前的?占位符,Mybatis底层使用的是什么?PreparedStatement
-->
<select id="selectUserById" resultType="com.itheima.springbootmybatis.domain.User">
select id,username,password from user where id = #{id}
</select>
<!-- 如果方法的返回值是集合,在映射xml中,resultType应该怎么写? -->
<select id="findAllUsers" resultType="com.itheima.springbootmybatis.domain.User">
select id,username,password from user
</select> <select id="findAllUsersByPage" resultType="com.itheima.springbootmybatis.domain.User">
select id,username,password from user limit #{pageNum},8
</select> <select id="findAllUsersByUsername" resultType="com.itheima.springbootmybatis.domain.User">
-- select id,username,password from user where username like '%${username}%'
select id,username,password from user where username like #{username}
</select> <!-- sql片段 -->
<sql id="selectUser">
select id,username,password from user
</sql> <!-- 多条件的查询,可以拼成多个条件,只要条件满足,都会看 -->
<select id="selectUsersIF" resultType="com.itheima.springbootmybatis.domain.User">
-- select id,username,password from user
-- where 1 = 1
-- 引用sql片段
<include refid="selectUser"></include>
<where>
<if test="id != null">
and id = #{id}
</if>
<if test="username != null and username !=''">
and username = #{username}
</if>
<if test="password != null and password !=''">
and password = #{password}
</if>
</where>
</select> <!-- 类似于我们之前学过的switch...case,只会走一个条件,如果发现有满足的条件,后面的就不看了 -->
<select id="selectUsersChoose" resultType="com.itheima.springbootmybatis.domain.User">
select id,username,password from user
<where>
<choose>
<when test="username != null and username !=''">
username = #{username}
</when>
<when test="password != null and password !=''">
password = #{password}
</when>
<otherwise>
id = #{id}
</otherwise>
</choose>
</where>
</select> <!-- trim去掉一些特殊的sql语法,比如我们常见的and,or,trim元素我们需要去掉的一些特殊的字符串,现在已经很少用了 -->
<select id="selectUsersTrim" resultType="com.itheima.springbootmybatis.domain.User">
select id,username,password from user
-- prefix:前缀 prefixOverrides:覆盖前缀
<trim prefix="where" prefixOverrides="and">
<if test="username != null and username != ''">
and username=#{username}
</if>
<if test="id != null">
and id = #{id}
</if>
</trim>
</select>
<select id="selectUserByIds" resultType="com.itheima.springbootmybatis.domain.User">
select id,username,password from user
where id in
-- collection:要遍历的集合
-- open:前置的括号(
-- close:后置的括号)
-- separator:每个数据遍历出来的分隔符
-- item:遍历出来的每一项
-- (1,5,6)
<foreach collection="ids" open="(" close=")" separator="," item="id">
#{id}
</foreach> </select>
</mapper>

测试

SpringBoot整合其他框架的更多相关文章

  1. SpringBoot整合日志框架LogBack

    日志可以记录我们应用程序的运行情况,我们可以通过日志信息去获取应用程序更多的信息.常用处理java日志的组件有:slf4j.log4j.logback.common-logging等.其中log4j是 ...

  2. SpringBoot整合knife4j框架(可生成离线接口文档),并设置接口请求头token默认值

    功能和swagger类似 官网地址:https://doc.xiaominfo.com/knife4j/ 这个框架可以设置返回字段的描述 引入依赖 <dependency> <gro ...

  3. SpringBoot整合Swagger框架 ,并设置接口请求头token默认值

      引入maven依赖 <!-- swagger2--> <dependency> <groupId>io.springfox</groupId> &l ...

  4. SpringBoot整合任务调度框架Quartz及持久化配置

    目录 本篇要点 SpringBoot与Quartz单机版快速整合 引入依赖 创建Job 调度器Scheduler绑定 自动配置,这里演示SimpleScheduleBuilder 手动配置,这里演示C ...

  5. (六)SpringBoot整合Swagger2框架

    一:什么是Swagger Swagger是一款通过我们添加的注解来对方法进行说明,来自动生成项目的在线api接口文档的web服务. 二:添加Swagger2依赖 <dependency> ...

  6. 【IDEA填坑】springboot整合ssm框架

    遇到俩问题:一个是mybatis生疏  在EmpMapper.xml中定义resultMap <resultMap id="EmpWithDept" type="c ...

  7. (九)SpringBoot整合redis框架

    二:添加Redis依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactI ...

  8. (二)SpringBoot整合常用框架Druid连接池

    一,在Pom.xml文件加入依赖 找到<dependencies></dependencies>标签,在标签中添加Druid依赖 <dependency> < ...

  9. SpringBoot整合MyBatis-Plus框架(代码生成器)

    MyBatis-Plus的简介 Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 代码生成器 通用的CU ...

  10. SpringBoot整合quartz框架启动定时任务报错:the given trigger will never fire.

    org.quartz.SchedulerException: Based on configured schedule, the given trigger 'DEFAULT.cron_b1a91e1 ...

随机推荐

  1. [部署日记]Android Studio在安装完后,sdk依旧提示SDK emulator directory is missing

    问题起源: 今天在闲着没事搞了个go的rest-api,用postman测试了一下可行,于是一拍大腿决定写一个安卓手机程序,于是一拍大腿重新下载了卸载没多久因为没空间放原神的Android Studi ...

  2. EXE项目和DLL项目远程调试、Props设置说明

    通用宏设置 exe项目根据平台.配置设置输出路径: dll项目根据平台.配置设置输出路径,dll文件.lib文件分别输出到自己的路径: 中间文件根据平台.配置.项目设置输出路径: 设置远程调试命令.远 ...

  3. MySql索引底层原理(01)

    目的:通过mysql获取数据,检索数据的原理来理解索引,以及如何利用好索引. 由于篇幅问题,可能会连载几篇文章. 从mysql获取一条数据说起: 我们知道,电脑的系统在获取数据的时候会旋转磁盘,然后移 ...

  4. 关于右值 std::move

    今天发现一个情况,对容器map 进行 std::move 之后,原map被清空了.     map<int, int> tmp;     tmp[1] = 1;     tmp[2] = ...

  5. Android Studio的xml文件无法代码提示

    之前试了省电模式.清理缓存.重新勾选sdk都没有任何用 于是我开始乱搞,总结了以下方法: 找到Gradle Script中的build.gradle(Module:XXXX) 修改compileSdk ...

  6. 使用Certbot申请证书

    使用certbot申请*通配符证书,使用letsencrypt证书服务,使用DNS方式手动验证 certbot certonly --preferred-challenges dns --manual ...

  7. Jmeter接口测试+Jmeter性能测试项目实战+Jmeter性能监控分析调优01

    Jmeter P1 性能测试关键指标 1,这些指标大家看到后有什么感觉呢?对于功能测试,一般结果就两种,成功的或者是不通过的,有问题的和没问题的,有毛病的和没毛病的,比如打开网页,能打开就打开,打不开 ...

  8. Ubuntu常用备查

    Ubuntu的目录结构 / 根目录 /home 用户操作目录 /etc 配置文件存放 /boot 系统启动文件 /usr 非系统自带的软件安装目录 /bin./usr/bin 存放可执行二进制文件 / ...

  9. vue IE9兼容flex布局 css3(转载)

    原文 https://blog.csdn.net/shihezhengshz/article/details/118860562 写这文章的时候的我,心力憔悴鸭,找了好长时间,呜呜┭┮﹏┭┮ 好了,开 ...

  10. anaconda在sys.path删除~/.local/lib

    python -m site python -m site -help USER_SITE='~/anaconda3/envs/test/lib/python3.7/site-packages'