SpringBoot整合其他框架
SpringBoot整合Junit
实现步骤
- 搭建SpringBoot工程
- 引入starter-test起步依赖
- 编写测试类
- 添加测试相关注解
- @RunWith(SpringRunner.class)
- @SpringBootTest(classes=启动类.class)
- 编写测试方法


SpringBoot整合Redis(跳过)
实现步骤
- 搭建SpringBoot工程
- 引入redis起步依赖
- 配置redis相关属性
- 注入RedisTemplate模板
- 编写测试方法,测试
SpringBoot整合MyBatis
实现步骤
- 搭建SpringBoot工程
- 引入mybatis起步依赖,添加mysql驱动
- 编写DataSource和MyBatis相关配置
- 定义表和实体类
- 编写dao和mapper文件/纯注解开发
- 测试
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整合其他框架的更多相关文章
- SpringBoot整合日志框架LogBack
日志可以记录我们应用程序的运行情况,我们可以通过日志信息去获取应用程序更多的信息.常用处理java日志的组件有:slf4j.log4j.logback.common-logging等.其中log4j是 ...
- SpringBoot整合knife4j框架(可生成离线接口文档),并设置接口请求头token默认值
功能和swagger类似 官网地址:https://doc.xiaominfo.com/knife4j/ 这个框架可以设置返回字段的描述 引入依赖 <dependency> <gro ...
- SpringBoot整合Swagger框架 ,并设置接口请求头token默认值
引入maven依赖 <!-- swagger2--> <dependency> <groupId>io.springfox</groupId> &l ...
- SpringBoot整合任务调度框架Quartz及持久化配置
目录 本篇要点 SpringBoot与Quartz单机版快速整合 引入依赖 创建Job 调度器Scheduler绑定 自动配置,这里演示SimpleScheduleBuilder 手动配置,这里演示C ...
- (六)SpringBoot整合Swagger2框架
一:什么是Swagger Swagger是一款通过我们添加的注解来对方法进行说明,来自动生成项目的在线api接口文档的web服务. 二:添加Swagger2依赖 <dependency> ...
- 【IDEA填坑】springboot整合ssm框架
遇到俩问题:一个是mybatis生疏 在EmpMapper.xml中定义resultMap <resultMap id="EmpWithDept" type="c ...
- (九)SpringBoot整合redis框架
二:添加Redis依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactI ...
- (二)SpringBoot整合常用框架Druid连接池
一,在Pom.xml文件加入依赖 找到<dependencies></dependencies>标签,在标签中添加Druid依赖 <dependency> < ...
- SpringBoot整合MyBatis-Plus框架(代码生成器)
MyBatis-Plus的简介 Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 代码生成器 通用的CU ...
- SpringBoot整合quartz框架启动定时任务报错:the given trigger will never fire.
org.quartz.SchedulerException: Based on configured schedule, the given trigger 'DEFAULT.cron_b1a91e1 ...
随机推荐
- MyBatis_01(前置知识)
1-学习思路(课程主要内容): 2-MyBatis特性 3- MyBatis下载 但是我们在使用MyBatis的时候,都是直接 "Maven导入MyBatis的jar包" (所以, ...
- 报错:tar: This does not look like a tar archive
一.现象 解压时报错: 二.解决办法 gzip -d xxxx.tar.gz (对于.tar.gz文件的处理方式) tar -xf xxxx.tar (对于.tar文件处理方式) 三.查看
- Windows系统运行selenium
1.系统已安装python: 2.安装pip 官网下载pip安装包:https://pypi.org/project/pip/#files 解压后 python setup.py install ...
- PyTables 教程(三) 执行撤消/重做功能,使用枚举类型,表中的嵌套结构
翻译自http://www.pytables.org/usersguide/tutorials.html 执行撤消/重做功能 PyTables 支持撤销/重做功能,此功能可让您将标记放置在层次结构操作 ...
- Mac下Virtual Box 6.1 Host-Only 网络配置 没有虚拟网卡
Virtual Box 6.1 mac下 Virtual Box Host-Only 没有 vboxnet0 点击 tools -> 右边的三杆,点 Network 可以添加,修改,删除 虚拟 ...
- Vulnhub 靶机 CONTAINME: 1
Vulnhub 靶机 CONTAINME: 1 前期准备: 靶机地址:https://www.vulnhub.com/entry/containme-1,729/ kali地址:192.168.147 ...
- Objectarx2016在VS2012里面创建失败的解决办法
在网上找了很多办法,有说需要管理员权限运行msi的,还有什么ucs的,经过我的尝试,最后找到了办法 解决办法是,在vs2012的根目录下>>vc>>vcprojects> ...
- 转载安卓或苹果手机获取URL scheme方法
首先,打开支付宝,来到需要抓取的小程序页面.此处以上海的随申码为例演示,打开随申办小程序,点击顶部的「随申码」按钮进入页面. 可以看出这个一个二级页面,如果想要使用 URL Scheme 一键访问,同 ...
- 1071 - Specified key was too long; max key length is 767 bytes
set global innodb_large_prefix=on;set global innodb_file_format=BARRACUDA; 主从都要修改以上2个参数.
- ssl 导入和配置
https://blog.csdn.net/qq_23663693/article/details/121698553