流程目录
- 添加Mybatis和mysql的相关jar配置
- 添加数据库四元素和Mybatis相关配置
- 添加表,模型,DAO接口,Service,Controller,模板
- 添加模板
- 启动测试
- 添加Mybatis的相关jar配置
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
2.添加数据库四元素和MyBatis相关配置
在src/main/resource下的application.properties进行配置,代码如下
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql:///helloworld?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=admin
mybatis.type-aliases-package=com.helloworld.domain
mybatis.mapper-locations=classpath:mapper/*/*.xml
#指定访问端口,可以修改成80
server.port=8080
3.添加表,模型,DAO,Service,Controller
3.1 表
CREATE TABLE `t_user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`deptId` bigint(20) NOT NULL,
PRIMARY KEY (`id`),
KEY `deptId` (`deptId`),
CONSTRAINT `t_user_ibfk_1` FOREIGN KEY (`deptId`) REFERENCES `t_dept` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
CREATE TABLE `t_dept` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
3.2模型
3.3 DAO接口
DAO映射文件,如下图所示,不知道看起来会不会乱,我想表达的是MyBatis的两个配置,一个是别名扫描包,然后在映射文件里面可以直接使用类名作为别名。一个是映射文件放的地方
3.4 Service
只贴一个Service,另外个DeptService中只有一个selectOneById方法
package com.helloworld.service.user;
import java.sql.SQLException;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.helloworld.dao.user.UserDAO;
import com.helloworld.domain.user.User;
import com.mysql.jdbc.StringUtils;
@Service
public class UserService{
@Autowired
private UserDAO userDAO;
public List<User> selectAll() {
return userDAO.selectAll();
}
}
3.5 Controller
package com.helloworld.web.user;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import com.helloworld.domain.user.User;
import com.helloworld.service.user.UserService;
@RequestMapping("/user")
@Controller
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/list")
public String list(Model model) {
List<User> users = userService.selectAll();
model.addAttribute("users", users);
return "user/list";
}
}
3.6 模板
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<#list users as user>
${user.dept.name}<!-- 跟el表达式一样,如果取依赖类中的属性 -->
</#list>
</body>
</html>
4. 启动测试
注意点:
- 接口需要一个或两个注解@Mapper必须 @Repository选择,告诉Spring以驼峰方式命名name注入给service