springboot整合mybatis註解開發,thymeleaf的簡單使用
1、前言
之前玩過使用xml配置檔案整合mybatis,這次為了整合thymeleaf模板,選用簡單的註解完成資料庫的查詢。整合工具無非是引入依賴,新增配置完成此相關功能。玩過之後,記錄一下學習的過程,以備後續使用。
2、依賴引入
使用springboot開發,建議裝上springboot相關的外掛,這樣能省去很多操作。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- 整合模板引擎 thymeleaf --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
使用springboot外掛的話,只需要選擇關鍵字“web”、“mysql”、“thmeleaf”即可,依賴會自動引入。
3、yml配置
# server server: port: 8080 servlet: context-path: /book spring: # database datasource: url: jdbc:mysql://127.0.0.1:3306/test driver-class-name: com.mysql.jdbc.Driver username: root password: root # thymeleaf 模板引擎 thymeleaf: cache: false # mybatis mybatis: configuration: map-underscore-to-camel-case: true #開啟駝峰匹配
yml配置包括服務配置,資料來源配置、模板引擎配置還有mybatis的配置。thymeleaf的配置大多數選擇預設配置,自定義配置會覆蓋預設配置,為了測試方便,關掉thymeleaf 的快取機制。
hymeleaf的預設配置詳見:
4、程式
@Controller public class BookController { @Autowired private BookService bookService; @GetMapping("/welcome") @ResponseBody public String welcome() { return "welcome"; } @GetMapping("/getBook/{bookNo}") @ResponseBody public Book getBook(@PathVariable("bookNo") String bookNo) { Book book = bookService.getBookByNo(bookNo); return book; } @GetMapping("/thymeleaf01") public String thymeleaf01(Model model) { model.addAttribute("name", "初次使用Thymeleaf"); model.addAttribute("type", "Model"); return "html/index"; } @GetMapping("/thymeleaf02") public String thymeleaf02(ModelMap map) { map.put("name", "初次使用Thymeleaf"); map.put("type", "ModelMap"); return "html/index"; } @GetMapping("/thymeleaf03") public String thymeleaf03(HttpServletRequest request) { request.setAttribute("name", "初次使用Thymeleaf"); request.setAttribute("type", "HttpServletRequest"); return "html/index"; } }
controller層使用普通的註解,沒有使用@RestController。因為需要跳轉頁面,如果使用@RestController無法跳轉頁面。對外提供介面話,可以使用@RestController註解。
thymeleaf頁面引數的傳遞可以使用這幾種方式:request、ModelMap、Model
thymeleaf跳轉自定義頁面時,配置prefix無效,只需要在return語句中加上包名即可。
5、頁面
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8"/>
<title>springboot-thymeleaf demo</title>
</head>
<body>
<p th:text="'hello, ' + ${name} + '!'" />
<p th:text="'這是使用'+${type}+'返回的資料'" />
</body>
</html>
thymeleaf使用html頁面,但是頁面可以使用類似jsp頁面的語法,用來渲染資料。
6、持久層註解
@Mapper
public interface BookMapper {
@Select("select * from db_book where book_no=#{bookNo}")
Book getBookByNo(@Param("bookNo") String bookNo);
}
mybatis註解需要加上@Mapper,容器會自動掃描(與掃描包的功能類似)。SQL的方式和XML的配置相同。
7、thymeleaf 參考文件
①技術部落格:https://blog.csdn.net/zrk1000/article/details/72667478
②官方資料:https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#using-texts
-- END