SpringBoot整合SpringMVC+MyBatis
使用SpringBoot+SpringMVC+MyBatis整合
实现一个对数据库中的user表的CRUD的操作
先创建表USER
CREATE TABLE USER ( id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, NAME VARCHAR(50) DEFAULT NULL, sex VARCHAR(4) DEFAULT NULL )ENGINE=INNODB DEFAULT CHARSET=utf8; |
第一步:创建maven工程:

第二步:pom.xml文件
需要依赖:
Mybatis启动器,mysql数据库驱动,数据库连接池
<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> <!--创建工程时依赖的springboot父工程 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.12.RELEASE</version> </parent> <groupId>com.study7</groupId> <artifactId>com.study7</artifactId> <version>0.0.1-SNAPSHOT</version> <!-- 指定jdk版本 --> <properties> <java.version>1.7</java.version> <thymeleaf.version>3.0.2.RELEASE</thymeleaf.version> <thymeleaf-layout-dialect.version>2.0.4</thymeleaf-layout-dialect.version> </properties> <dependencies> <!-- 引入springboot启动器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 引入thymeleaf相关jar --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!-- Mybatis启动器 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.0</version> </dependency> <!-- mysql数据库驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- 数据库连接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.11</version> </dependency> <!-- 分页插件 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-joda</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.module</groupId> <artifactId>jackson-module-parameter-names</artifactId> </dependency> </dependencies> <build> <plugins> <!-- <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> --> <!-- mybatis generator 自动生成代码插件 --> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <configuration> <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile> <overwrite>true</overwrite> <verbose>true</verbose> </configuration> </plugin> </plugins> </build> |
User对象:
package com.study7.pojo; public class User { private Integer id; private String name; private String sex; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } } |
第三步:application.properties文件(classpath下创建)
在/com.study7/src/main/resources/目录下创建application.properties
#连接mysql相关配置 spring.datasource.driverClassName=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/springboot spring.datasource.username=root spring.datasource.password=root spring.datasource.type=com.alibaba.druid.pool.DruidDataSource #指定pojo别名映射属性路径 mybatis.type-aliases-package=com.study7.pojo |
第四步:创建一个mapper文件目录,保存mapper文件及maaper.xml文件
UserMapper.xml (namespace:命名空间要指定映射的Mapper路径)
<?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.study7.mapper.UserMapper"> <insert id="insertUser" parameterType="user"> insert into user (name,sex) values( #{name}, #{sex} ) </insert> </mapper> |
UserMapper接口:
注意:mybatis中mapper接口要求:
1.接口mapper名要和mapper.xml保持一致
2.方法名要和mapper.xml中的sql的id保持一致
3.mapper要与mapper.xml存放目录保持一致
package com.study7.mapper; import com.study7.pojo.User; /** * User Mapper表映射 */ public interface UserMapper { public void insertUser(User user); } |
第五步:编写UserService接口及实现类
UserService :
package com.study7.service; import com.study7.pojo.User; public interface UserService { public void addUser(User user); } |
UserServiceImpl:
package com.study7.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureOrder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.study7.mapper.UserMapper;
import com.study7.pojo.User;
import com.study7.service.UserService;
@Service
@Transactional
publicclassUserServiceImplimplementsUserService{
//mapper表映射
@Autowired
privateUserMapper userMapper;
@Override
publicvoid addUser(User user){
this.userMapper.insertUser(user);
}
}
第六步:编写UserController,根据需求先请求一个页面让用户输入User信息,
提交完成,插入数据到数据库,跳转成功页面提示。
UserController:
package com.study7.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import com.study7.pojo.User;
import com.study7.service.UserService;
@Controller
@RequestMapping("/user")
publicclassUserController{
@Autowired
privateUserService userService;
/**
* 页面跳转
* @param page
* @return
*/
@RequestMapping("/{page}")
publicString showPage(@PathVariableString page){
return page;
}
@RequestMapping("/addUser")
publicString addUser(User user){
this.userService.addUser(user);
return"success";
}
}
第七步:使用thymeleaf编写用户输入页面input.html及提交成功返回页面success.html
注意:静态资源要在classpath目录下创建一个templates目录存放
input.html
<!DOCTYPE html> <html> <meta charset="utf-8"/> <title>添加用户</title> <body> <form th:action="@{/user/addUser}" method="post"> 用户姓名:<input type="text" name="name" /> 用户性别:<input type="text" name="sex" /> <input type="submit" value="提交"/> </form> </body> </html> |
success.html
<?xml version="1.0" encoding="UTF-8"?> <html> <meta charset="utf-8"/> <title>添加用户成功页面</title> <body> 用户添加成功 </body> </html> |
第八步:编写启动类
注意:启动类可以在controller相同目录下,也可以在上层目录下,
不能在同级目录下。
package com.study7;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.study7.mapper")//扫描mapper:用于扫描mybatis的mapper接口生成代理对象
publicclassApp{
publicstaticvoid main(String[] args){
SpringApplication.run(App.class, args);
}
}
第九步:启动测试


