学习视频:【编程不良人】2021年SpringBoot最新最全教程
第五章、JSP模板集成

5.1 引入JSP依赖
- <dependency>
- <groupId>jstl</groupId>
- <artifactId>jstl</artifactId>
- <version>1.2</version>
- </dependency>
- <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: 8989
- servlet:
- context-path: /springboot02
- jsp:
- init-parameters:
- development: true # 开启jsp页面开发模式 作用:无需重启应用,直接刷新网页
复制代码 第六章、整合MyBatis框架
数据库访问框架:hibernate、jpa、mybatis【主流】
SpringBoot(微框架) = Spring(工厂) + SpringMVC(控制器)
SpringBoot整合MyBatis的思路基本上是和Spring整合MyBatis是一致的
6.1 引入依赖
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>druid</artifactId>
- <version>1.1.19</version>
- </dependency>
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- </dependency>
- <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: 8989
- servlet:
- context-path: /springboot03 #指定应用名称
- **#整合mybatis相关配置**
- spring:
- datasource:
- type: com.alibaba.druid.pool.DruidDataSource #指定数据源
- driver-class-name: com.mysql.cj.jdbc.Driver # mysql8以上选择带cj的Driver
- url: jdbc:mysql://localhost:3306/ssm?characterEncoding=UTF-8
- username: root
- password: 123456
- mybatis:
- 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 {
- @Autowired
- private EmpDAO empDAO;
- public EmpServiceImpl(EmpDAO empDAO) {
- this.empDAO = empDAO;
- }
- @Override
- public List<Emp> findAll() {
- return empDAO.findAll();
- }
- @Override
- public void save(Emp emp) {
- empDAO.save(emp);
- int i = 1/0; // 测试是否回滚
- }
- }
复制代码 - 控制器
- @RestController
- public class EmpController {
- @Autowired
- private 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都要添加
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |