1. 程式人生 > >springboot整合mybatis註解開發,thymeleaf的簡單使用

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