Spring Boot Mybatis Thymeleaf项目构建
- POM文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<groupId>com.skcc</groupId>
<artifactId>service</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>oaadmin</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- 开发Spring及web项目依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</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>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<!-- jdbc依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- mssql driver -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<scope>runtime</scope>
</dependency>
<!-- 热部署依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <!-- 这个需要为 true 热部署才有效 -->
</dependency>
</dependencies>
<build>
<plugins>
<!-- 热部署插件 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
application.properties文件配置
spring.profiles.active=dev
spring.thymeleaf.cache=false
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.servlet.content-type=text/html; charset=utf-8
spring.datasource.url=jdbc:sqlserver://172.206.205.116:1433;DatabaseName=EGSS_TEST
spring.datasource.username=EGSS_DEV
spring.datasource.password=
spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
# com.microsoft.sqlserver.jdbc.SQLServerDriver com.mysql.jdbc.Driver
mybatis.config-location=classpath:mybatis/mapper/mybatis-config.xml
mybatis.mapper-locations=classpath:mybatis/mapper/Mapper.xml
mybatis.type-aliases-package=com.skcc.entity
在src/main/resources创建目录mybatis/mapper文件夹,再创建BookMapper.xml/mybatis-config.xml
BookMapper.xml文件
<?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.skcc.mapper.BookMapper">
<select id="selectAllBook" resultType="com.skcc.entity.BookEntity">
select from AA_Book
</select>
<select id="selectBookById" parameterType="java.util.Map" resultType="java.util.Map" >
select from AA_Book where BookId=#{BookId}
</select>
<insert id="insertBook" keyProperty="BookId" useGeneratedKeys="true" parameterType="java.util.Map">
INSERT INTO AA_Book(BookName,Author,WordCount,BookSummary,[Desc],CreateDate)
VALUES
(
#{BookName}
, #{Author}
, #{WordCount}
, #{BookSummary}
, #{Desc}
,GETDATE()
)
</insert>
</mapper>
mybatis-config.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<typeAlias alias="Integer" type="java.lang.Integer" />
<typeAlias alias="Long" type="java.lang.Long" />
<typeAlias alias="HashMap" type="java.util.HashMap" />
<typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap" />
<typeAlias alias="ArrayList" type="java.util.ArrayList" />
<typeAlias alias="LinkedList" type="java.util.LinkedList" />
</typeAliases>
<!--
<mappers>
<mapper resource="classpath:sample/mybatis/mapper/CityMapper.xml"/>
</mappers>
-->
</configuration>
OaadminApplication启动类入口文件br/>@SpringBootApplication
@MapperScan("com.skcc.mapper")
public class OaadminApplication {
public static void main(String[] args) {
SpringApplication.run(OaadminApplication.class, args);
}
}
com.skcc.mapper包BookMapper.java文件
public interface BookMapper {
// com.ibatis.sqlmap.client.SqlMapClient;
public List<BookEntity> selectAllBook();
public Map<String, Object> selectBookById(Map<String, Object> map);
public int insertBook(Map<String, Object> map);
@Autowired
BookMapper bookDao;
@RequestMapping("/hello")
public String hello(Model m) {
m.addAttribute("name", "thymeleaf start.");
List<EmpInfo> empList = new ArrayList<>();
empList.add(new EmpInfo("1001", "ZhouJun", 30));
empList.add(new EmpInfo("1002", "LiMei", 32));
empList.add(new EmpInfo("1003","ChenHua",22));
m.addAttribute("emps", empList);
m.addAttribute("nowdate",new Date());
List<BookEntity> bookList= bookDao.selectAllBook();
m.addAttribute("BooKList", bookList.toString());
return "hello";
}
}br/>**src/main/resources/templates文件**,其中src/main/resources/static中可以放js,css文件@{/css/hello.css}
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Spring Boot thymeleaf</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" style="text/css" href="/css/hello.css" th:href="@{/css/hello.css}" />
<script type="text/javascript" src="/js/hello.js" th:src="@{/js/hello.js}"></script>
</head>
<body>
<p th:text="${name}">name</p>
<p th:if="n">条件为真就显示了</p>
<div>
<input type="button" value="Test Buton" class="ibutton"
οnclick="testPopUp();" />
</div>
<div class="showing">
<div th:replace="include::footer1"></div>
<div th:replace="include::footer2(1999,2019)"></div>
</div>
<div>
<h2>遍历</h2>
<table>
<thead>
<tr>
<th>id</th>
<th>Name</th>
<th>age</th>
</tr>
</thead>
<tbody>
<tr th:each="p: ${emps}">
<td th:text="${p.empID}"></td>
<td th:text="${p.empName}"></td>
<td th:text="${p.age}"></td>
</tr>
</tbody>
</table>
</div>
<div>
<h2>时间格式化</h2>
<p th:text="${#dates.format(nowdate,'yyyy-MM-dd HH:mm:ss SSS')}"></p>
</div>
<div>
<h2>BooKList</h2>
<p th:text="${BooKList}">BooKList</p>
</div>
</body>br/>**单元测试示例**
@RunWith(SpringRunner.class)
@SpringBootTest
public class HelloTest {
@Autowired
BookMapper bookDao;
@Test
public void sayHello() {
new HelloService().sayHello();
}
@Test
public void selectAllBookTest() {
List<BookEntity> bookList= bookDao.selectAllBook();
System.out.println(bookList);
}
@Test
public void selectBookById() {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("BookId", 1);
Map<String, Object> bookMap = bookDao.selectBookById(paramMap);
System.out.println("----------selectBookById--bookMap-------------------");
System.out.println(bookMap);
}
@Test
public void insertBook() {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("BookName", "PHP高级编程");
paramMap.put("Author", "zhangjun");
paramMap.put("WordCount", 66999);
paramMap.put("BookSummary", "网络原理");
paramMap.put("Desc", "2008年出版");
int result = bookDao.insertBook(paramMap);
System.out.println("insertBook : " + result+" Key : " + paramMap.get("BookId"));
}
}
上一篇: JPA及联合主键的使用
推荐阅读
-
idea创建一个入门Spring Boot项目(controller层)使用Moven代码管理
-
把spring boot项目发布tomcat容器(包含发布到tomcat6的方法)
-
spring boot创建项目包依赖问题的解决
-
【spring-boot】快速构建spring-boot微框架的方法
-
Spring boot + mybatis + Vue.js + ElementUI 实现数据的增删改查实例代码(一)
-
选择Spring Boot项目的内嵌容器的理由
-
Spring boot + mybatis + Vue.js + ElementUI 实现数据的增删改查实例代码(二)
-
详解Spring Boot 项目启动时执行特定方法
-
创建Spring Boot项目的几种方式总结(推荐)
-
Spring Boot基础入门之基于注解的Mybatis