SpringBoot整合SpringMVC+MyBatis——入门篇
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);
}
}
第九步:启动测试