爲了怕翻車,比如可以建testj這樣的項目:
mysql和jsp pom
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
==========================mysql=================================
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>
===========================================================
============================JSP===============================
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<scope>provided</scope>
</dependency>
===========================================================
創建jsp文件 和數據庫
CREATE TABLE `t_user` (
`id` int(12) NOT NULL AUTO_INCREMENT,
`user_name` varchar(60) NOT NULL,
`note` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
src/main/webapp/WEB-INF/jsp/user/details.jsp
<%@ page pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<title>用戶詳情</title>
</head>
<body>
<center>
<table border="1">
<tr>
<td>標籤</td>
<td>值</td>
</tr>
<tr>
<td>用戶編號</td>
<td><c:out value="${user.id}"></c:out></td>
</tr>
<tr>
<td>用戶名稱</td>
<td><c:out value="${user.userName}"></c:out></td>
</tr>
<tr>
<td>用戶備註</td>
<td><c:out value="${user.note}"></c:out></td>
</tr>
</table>
</center>
</body>
</html>
jsp配置 ,選擇項目結構 ctrl+alt+shift+s
- 在facets——web——web Resource Directory 選擇到 webapp目錄。deployment Root 爲 默認 /
- 在右下角會提示創建 artifacts 點擊確定。一切都默認。(會創建 項目名:Web exploded)
application.properties
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
#數據庫配置。這樣配置爲了適應最新的數據庫
spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false
#可以不配置數據庫驅動,Spring Boot會自己發現
#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=123456
#mybatis配置
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.my.testj
controller
- user/details 將會拼接 :/WEB-INF/jsp/user/details.jsp
- 我們指定的 實在webapp目錄,將會在這個目錄去找。webapp是和 java 和resource 目錄同級
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserDao userDao = null;
// 展示用戶詳情
@RequestMapping("details")
public ModelAndView details(Long id) {
// 訪問模型層得到數據
User user = userDao.getUser(id);
/*User user=new User();*/
/*user.setId(111L);
user.setUserName("張三");*/
// 模型和視圖
ModelAndView mv = new ModelAndView();
// 定義模型視圖
mv.setViewName("user/details");
// 加入數據模型
mv.addObject("user", user);
// 返回模型和視圖
return mv;
}
@RequestMapping("/detailsForJson")
public ModelAndView detailsForJson(Long id) {
// 訪問模型層得到數據
//User user = userService.getUser(id);
User user=new User();
user.setId(111L);
user.setUserName("張三");
// 模型和視圖
ModelAndView mv = new ModelAndView();
// 生成JSON視圖
MappingJackson2JsonView jsonView = new MappingJackson2JsonView();
mv.setView(jsonView);
// 加入模型
mv.addObject("user", user);
return mv;
}
}
- 此時jsp已經搭建完畢。
搭建mybatis
#mybatis配置
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.my.testj
mapper.xml
src/main/resources/mapper/userMapper.xml #注意這裏放的 resources目錄下
<?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.hua.testj.UserDao"> #注意這裏指定的dao路徑
<select id="getUser" resultType="user">
select id, user_name as userName, note from t_user where id = #{id}
</select>
<select id="findUsers" resultType="user">
select id, user_name as userName, note from t_user
<where>
<if test="userName != null"> and user_name like concat('%', #{userName}, '%')</if>
<if test="note != null"> and note like concat('%', #{note}, '%')</if>
</where>
</select>
</mapper>
dao
@Mapper
public interface UserDao {
User getUser(Long id);
List<User> findUsers(@Param("userName") String userName, @Param("note") String note);
}
- mybatis.type-aliases-package=com.my.testj 注意,這個目錄 和下對應
pojo
@Alias("user")
public class User {
private Long id;
private String userName;
private String note;
}
mian
@SpringBootApplication
public class TestjApplication {
public static void main(String[] args) {
SpringApplication.run(TestjApplication.class, args);
}
}
/*@SpringBootApplication(scanBasePackages = "com.springboot.chapter9")
@MapperScan(basePackages="com.springboot.chapter9", annotationClass = Mapper.class)*/
- 注意,默認的掃描是 mapper 可以不用配置。
如果配置:Repository
@Repository
public interface UserDao {}
記得改:annotationClass = Repository.class