Spring Boot学习随笔- 集成JSP模板(配置视图解析器)、整合Mybatis(@Mapp ...

打印 上一主题 下一主题

主题 918|帖子 918|积分 2754

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


5.1 引入JSP依赖
  1. <dependency>
  2.     <groupId>jstl</groupId>
  3.     <artifactId>jstl</artifactId>
  4.     <version>1.2</version>
  5. </dependency>
  6. <dependency>
  7.     <groupId>org.apache.tomcat.embed</groupId>
  8.     <artifactId>tomcat-embed-jasper</artifactId>
  9. </dependency>
复制代码
5.2 配置jsp视图解析器
  1. # 配置jsp视图解析器
  2. spring:
  3.   mvc:
  4.     view:
  5.       prefix: /
  6.       suffix: .jsp
复制代码
5.3 指定Jsp访问目录

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


  • 修改jsp无需重启应用
    1. server:
    2.   port: 8989
    3.   servlet:
    4.     context-path: /springboot02
    5.     jsp:
    6.       init-parameters:
    7.         development: true # 开启jsp页面开发模式 作用:无需重启应用,直接刷新网页
    复制代码
第六章、整合MyBatis框架

数据库访问框架:hibernate、jpa、mybatis【主流】
SpringBoot(微框架) = Spring(工厂) + SpringMVC(控制器)
SpringBoot整合MyBatis的思路基本上是和Spring整合MyBatis是一致的
6.1 引入依赖
  1. <dependency>
  2.     <groupId>com.alibaba</groupId>
  3.     <artifactId>druid</artifactId>
  4.     <version>1.1.19</version>
  5. </dependency>
  6. <dependency>
  7.     <groupId>mysql</groupId>
  8.     <artifactId>mysql-connector-java</artifactId>
  9. </dependency>
  10. <dependency>
  11.     <groupId>org.mybatis.spring.boot</groupId>
  12.     <artifactId>mybatis-spring-boot-starter</artifactId>
  13.     <version>3.0.0</version>
  14. </dependency>
复制代码
6.2 @MapperScan注解

作用:用在类上,扫描dao接口所在包,同时将所有dao接口交给工厂创建对象
用法
  1. @SpringBootApplication
  2. **@MapperScan({"com.baizhi.dao"})**  
  3. public class Springboot03Application {
  4.     public static void main(String[] args) {
  5.         SpringApplication.run(Springboot03Application.class, args);
  6.     }
  7. }
复制代码
6.3 整合mybatis相关配置
  1. server:
  2.   port: 8989
  3.   servlet:
  4.     context-path: /springboot03 #指定应用名称
  5. **#整合mybatis相关配置**
  6. spring:
  7.   datasource:
  8.     type: com.alibaba.druid.pool.DruidDataSource #指定数据源
  9.     driver-class-name: com.mysql.cj.jdbc.Driver # mysql8以上选择带cj的Driver
  10.     url: jdbc:mysql://localhost:3306/ssm?characterEncoding=UTF-8
  11.     username: root
  12.     password: 123456
  13. mybatis:
  14.   mapper-locations: classpath:com.baizhi.mapper/*.xml **#指定mapper配置文件位置**
  15.   type-aliases-package: com.baizhi.entity **#指定实体类的别名** 默认别名:类名(首字母小写)
复制代码
6.4 实体类、Service、DAO


  • 实体类
    1. public class Emp {
    2.     private Integer id;
    3.     private String name;
    4.     @JsonFormat(pattern = "yyyy-MM-dd")
    5.     private Date birthday;
    6.     private Double salary;
    7. }
    复制代码
  • Service实现类
    1. @Service
    2. @Transactional
    3. public class EmpServiceImpl implements EmpService {
    4.     @Autowired
    5.     private EmpDAO empDAO;
    6.     public EmpServiceImpl(EmpDAO empDAO) {
    7.         this.empDAO = empDAO;
    8.     }
    9.     @Override
    10.     public List<Emp> findAll() {
    11.         return empDAO.findAll();
    12.     }
    13.     @Override
    14.     public void save(Emp emp) {
    15.         empDAO.save(emp);
    16.         int i = 1/0; // 测试是否回滚
    17.     }
    18. }
    复制代码
  • 控制器
    1. @RestController
    2. public class EmpController {
    3.     @Autowired
    4.     private EmpService empService;
    5.     public EmpController(EmpService empService) {
    6.         this.empService = empService;
    7.     }
    8.     @RequestMapping("findAll")
    9.     public List<Emp> findAll() {
    10.         return empService.findAll();
    11.     }
    12.     @RequestMapping("save")
    13.     public void save(Emp emp) {
    14.         empService.save(emp);
    15.     }
    复制代码
  • Mapper文件
    1. <?xml version="1.0" encoding="UTF-8" ?>
    2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
    3. <mapper namespace="com.baizhi.dao.EmpDAO">
    4.     <insert id="save">
    5.         insert into emp values(#{id},#{name},#{birthday},#{salary})
    6.     </insert>
    7.     <select id="findAll" resultType="com.baizhi.entity.Emp">
    8.         select id,`name`,birthday,salary from emp
    9.     </select>
    10. </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都要添加

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王海鱼

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表