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 ...
随机推荐
- JS时间处理,兼容IOS
timeFormatting(val) { let time = val.slice(0, 10) // 兼容IOS time = time.replace(/-/g, '/') let date = ...
- json类型数据取出想要的部分
因为才疏学浅,只能用很笨的方法. 以下是我拿到的数据的json型数据. {"result":{"ingredient":{"result": ...
- mysql sum 聚合计算后精度不准 出现多位小数点后的数
解决办法 原收款单money 字段 为 decimal(28,8) 经过层层计算用到了 @total := ( beginning + @total + gather - verification ) ...
- Cgroup学习笔记3—代码实现—相关结构和全局变量
基于 LInux-5.10 一.相关结构 1. 通过多次的 #define 和 #undef SUBSYS 宏来展开 cgroup_subsys.h 中通过 deconfig 使能的 cgroup 子 ...
- TCP通信实现两个主机之间的信息交互
TCP通信概述TCP协议用来控制两个网络设备之间的点对点通信,两端设备按作用分为客户端和服务端.服务端为客户端提供服务,通常等待客户端的请求信息,有客户端请求到达之后,及时提供服务和返回响应消息:客户 ...
- start-stop服务器启动
springBoot打成jar包扔到linux服务器 start.sh nohup java -Dfile.encoding=utf-8 -jar XXX-1.0-SNAPSHOT.jar > ...
- modelsim仿真含Xilinx原语代码块
很早之前笔者已经写过关于modelsim仿真的文章了,不过之前笔者做的仿真都是有现成代码块的仿真.对于那些使用原语的代码块进行仿真时则需要产生相关的仿真库,笔者这里使用modeltech64_2020 ...
- python调用C库的方法
主要介绍两种,一种是python的标准库内置的ctype,另一种是第三方的pybind11. 除此之外,还有其他的方案,例如,CFFI.Cython等等. 一.python的标准库ctype
- 从FGUI中取一张图片并返回一个Sprite
从Fgui中的图集中取一个图素,把图素用到场景等非UI的地方. 此操作会动态创建一个Sprite对象,效率不好,不适合大量使用. private static Dictionary<string ...
- nacos原理
配置中心原理 1.Nacos 客户端使用长轮询请求客户端变更数据,并且设置30s超时,当配置发生变化响应会立即返回,否则一直等到29.5s之后再返回响应. 2.客户端的请求到达服务端后,服务端将该请求 ...