介紹瞭如何集成JSP模板到Spring Boot項目中。通過引入JSP依賴、配置JSP視圖解析器以及指定JSP訪問目錄,實現了JSP的集成和訪問。以及展示了整合MyBatis框架的步驟。首先介紹了引入MyBatis相關依賴的過程,然後講解了@MapperScan註解的使用,用於掃描DAO介面所在包並... ...
第五章、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: 8989 servlet: context-path: /springboot02 jsp: 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: 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都要添加
作者:揚眉劍出鞘
出處: https://www.cnblogs.com/eyewink/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。