Spring Boot学习随笔- 集成JSP模板(配置视图解析器)、整合Mybatis(@MapperScan注解的使用)

本文主要是介绍Spring Boot学习随笔- 集成JSP模板(配置视图解析器)、整合Mybatis(@MapperScan注解的使用),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

学习视频:【编程不良人】2021年SpringBoot最新最全教程

第五章、JSP模板集成

5.1 引入JSP依赖

<!--引入jsp解析依赖-->
<!--C标签库-->
<dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version>
</dependency>
<!--让内嵌tomcat具有解析jsp功能-->
<dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-jasper</artifactId>
</dependency>

5.2 配置jsp视图解析器

# 配置jsp视图解析器
spring:mvc:view:prefix: /suffix: .jsp

5.3 指定Jsp访问目录

在main创建webapp,然后创建index.jsp进行测试,在访问之前需要进行一个设置,否则springboot是找不到jsp页面的

  • 修改jsp无需重启应用

    server:port: 8989servlet:context-path: /springboot02jsp:init-parameters:development: true # 开启jsp页面开发模式 作用:无需重启应用,直接刷新网页
    

第六章、整合MyBatis框架

数据库访问框架:hibernate、jpa、mybatis【主流】

SpringBoot(微框架) = Spring(工厂) + SpringMVC(控制器)

SpringBoot整合MyBatis的思路基本上是和Spring整合MyBatis是一致的

6.1 引入依赖

<!--引入和MyBatis整合相关的依赖-->
<!--druid-->
<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.19</version>
</dependency>
<!--mysql-->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId>
</dependency>
<!--mybatis-spring-boot-stater-->
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.0</version>
</dependency>

6.2 @MapperScan注解

作用:用在类上,扫描dao接口所在包,同时将所有dao接口交给工厂创建对象

用法

@SpringBootApplication
**@MapperScan({"com.baizhi.dao"})**  
public class Springboot03Application {public static void main(String[] args) {SpringApplication.run(Springboot03Application.class, args);}}

6.3 整合mybatis相关配置

server:port: 8989servlet:context-path: /springboot03 #指定应用名称**#整合mybatis相关配置**
spring:datasource:type: com.alibaba.druid.pool.DruidDataSource #指定数据源driver-class-name: com.mysql.cj.jdbc.Driver # mysql8以上选择带cj的Driverurl: jdbc:mysql://localhost:3306/ssm?characterEncoding=UTF-8username: rootpassword: 123456mybatis:mapper-locations: classpath:com.baizhi.mapper/*.xml **#指定mapper配置文件位置**type-aliases-package: com.baizhi.entity **#指定实体类的别名** 默认别名:类名(首字母小写)

6.4 实体类、Service、DAO

  • 实体类

    public class Emp {private Integer id;private String name;@JsonFormat(pattern = "yyyy-MM-dd")private Date birthday;private Double salary;
    }
    
  • Service实现类

    @Service
    @Transactional
    public class EmpServiceImpl implements EmpService {@Autowiredprivate EmpDAO empDAO;public EmpServiceImpl(EmpDAO empDAO) {this.empDAO = empDAO;}@Overridepublic List<Emp> findAll() {return empDAO.findAll();}@Overridepublic void save(Emp emp) {empDAO.save(emp);int i = 1/0; // 测试是否回滚}
    }
    
  • 控制器

    @RestController
    public class EmpController {@Autowiredprivate EmpService empService;public EmpController(EmpService empService) {this.empService = empService;}@RequestMapping("findAll")public List<Emp> findAll() {return empService.findAll();}@RequestMapping("save")public void save(Emp emp) {empService.save(emp);}
    
  • Mapper文件

    <?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.baizhi.dao.EmpDAO"><insert id="save">insert into emp values(#{id},#{name},#{birthday},#{salary})</insert><select id="findAll" resultType="com.baizhi.entity.Emp">select id,`name`,birthday,salary from emp</select>
    </mapper>
    
  • 测试结果

    http://127.0.0.1:8989/springboot03/save?name=mike&birthday=2021/1/4&salary=23.01

    可以正常添加

    也可以正常查询

6.5 @Mapper 和 @MapperScan

@MapperScan是加在入口类,自动扫描包下面的dao接口一劳永逸【推荐】

@Mapper是直接加在dao接口,每个dao都要添加

下一章:Spring Boot学习随笔- 本地化测试(@SpringBootTest)、热部署(spring-boot-devtools)、日志Logback常用级别使用、指定包级别输出

这篇关于Spring Boot学习随笔- 集成JSP模板(配置视图解析器)、整合Mybatis(@MapperScan注解的使用)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/486578

相关文章

使用Redis快速实现共享Session登录的详细步骤

《使用Redis快速实现共享Session登录的详细步骤》在Web开发中,Session通常用于存储用户的会话信息,允许用户在多个页面之间保持登录状态,Redis是一个开源的高性能键值数据库,广泛用于... 目录前言实现原理:步骤:使用Redis实现共享Session登录1. 引入Redis依赖2. 配置R

SpringBoot实现RSA+AES自动接口解密的实战指南

《SpringBoot实现RSA+AES自动接口解密的实战指南》在当今数据泄露频发的网络环境中,接口安全已成为开发者不可忽视的核心议题,RSA+AES混合加密方案因其安全性高、性能优越而被广泛采用,本... 目录一、项目依赖与环境准备1.1 Maven依赖配置1.2 密钥生成与配置二、加密工具类实现2.1

使用Python的requests库调用API接口的详细步骤

《使用Python的requests库调用API接口的详细步骤》使用Python的requests库调用API接口是开发中最常用的方式之一,它简化了HTTP请求的处理流程,以下是详细步骤和实战示例,涵... 目录一、准备工作:安装 requests 库二、基本调用流程(以 RESTful API 为例)1.

Oracle迁移PostgreSQL隐式类型转换配置指南

《Oracle迁移PostgreSQL隐式类型转换配置指南》Oracle迁移PostgreSQL时因类型差异易引发错误,需通过显式/隐式类型转换、转换关系管理及冲突处理解决,并配合验证测试确保数据一致... 目录一、问题背景二、解决方案1. 显式类型转换2. 隐式转换配置三、维护操作1. 转换关系管理2.

在Java中实现线程之间的数据共享的几种方式总结

《在Java中实现线程之间的数据共享的几种方式总结》在Java中实现线程间数据共享是并发编程的核心需求,但需要谨慎处理同步问题以避免竞态条件,本文通过代码示例给大家介绍了几种主要实现方式及其最佳实践,... 目录1. 共享变量与同步机制2. 轻量级通信机制3. 线程安全容器4. 线程局部变量(ThreadL

Django中的函数视图和类视图以及路由的定义方式

《Django中的函数视图和类视图以及路由的定义方式》Django视图分函数视图和类视图,前者用函数处理请求,后者继承View类定义方法,路由使用path()、re_path()或url(),通过in... 目录函数视图类视图路由总路由函数视图的路由类视图定义路由总结Django允许接收的请求方法http

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

Python yield与yield from的简单使用方式

《Pythonyield与yieldfrom的简单使用方式》生成器通过yield定义,可在处理I/O时暂停执行并返回部分结果,待其他任务完成后继续,yieldfrom用于将一个生成器的值传递给另一... 目录python yield与yield from的使用代码结构总结Python yield与yield

Go语言使用select监听多个channel的示例详解

《Go语言使用select监听多个channel的示例详解》本文将聚焦Go并发中的一个强力工具,select,这篇文章将通过实际案例学习如何优雅地监听多个Channel,实现多任务处理、超时控制和非阻... 目录一、前言:为什么要使用select二、实战目标三、案例代码:监听两个任务结果和超时四、运行示例五

python使用Akshare与Streamlit实现股票估值分析教程(图文代码)

《python使用Akshare与Streamlit实现股票估值分析教程(图文代码)》入职测试中的一道题,要求:从Akshare下载某一个股票近十年的财务报表包括,资产负债表,利润表,现金流量表,保存... 目录一、前言二、核心知识点梳理1、Akshare数据获取2、Pandas数据处理3、Matplotl