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. nginx(二) の 配置静态资源网站

    首先在开始配置前,要想明白,nginx 配置 静态资源 服务时基本逻辑,其实就是要 将路由地址与服务器中文件真实的存储地址进行映射. 配置静态资源样例 配置前,首先要将当前配置文件的路径,写入到 ng ...

  2. 2.mysql存储过程、存储函数与触发器

    -- 创建一个存储过程DELIMITER $CREATE PROCEDURE 存储过程名称(返回类型 参数名1 参数类型1, ....) [ ...... ]BEGIN -- 具体组成存储过程的SQL ...

  3. MxDraw云图平台 2022.08.24更新

    SDK开发包下载地址: https://www.mxdraw.com/ndetail_30187.html 1. 增加对像扩展数据功能 2. 增加CAD GIS使用功能 https://www.mxd ...

  4. ThinkPHP接收header自定义参数

    // 请求拦截,配置Token等参数 Vue.prototype.$u.http.interceptor.request = (config) => { config.header['conte ...

  5. mysql常用语句操作

    概述: 1.通过表结构介绍.来操作mysql常用的语法&语句: 2.现在学习下几个基本的sql语句,万变不离其宗,把基础弄扎实了其它的就很容易了 一.表结构&建表: 1.学生基础信息表 ...

  6. 思科IPsecVPN建立

    实验拓扑 实验目标: 1.不配置中间的三个路由器的路由实现router0和router2的vpn隧道 2.PC0能够ping通PC1 实验IP预定: PC0 10.1.1.1/24 PC1 20.1. ...

  7. 'xxx' must be unique because it is referenced by a foreign key.

    'xxx' must be unique because it is referenced by a foreign key. 原因:在绑定外键时,对应的外键字段的没有设置成唯一. 说明:在定义字段时 ...

  8. GFS预报数据下载

    #更新#2019年6月12日之后,gfs预报场存放的目录变了,需要修改.get_gfs.pl第51行改为 $URL='https://nomads.ncep.noaa.gov/pub/data/ncc ...

  9. span服务器控件

    Label Button 这些控件在服务器端都有对应的类可以去实例化一个对象, 可是像 span 这些在服务器没有对应的类可实例的, 在服务器端要实例化一个 span 控件时怎么办呢? 可以使用 Ht ...

  10. django项目中使用swagger来实现接口文档自动生成

    一.Swagger 一般我们在对接前后端的时候,都需要提供相应的接口文档.对于后端来说,编写接口文档即费时费力,还会经常因为没有及时更新,导致前端对接时出现实际接口与文档不一致.而且手写接口文档还容易 ...