Spring boot+Spring MVC+mybatis整合
一、用sts或者IDEA创建Spring boot项目
下面是我的整个目录结构:
这里主要实行了一个增和查的操作。
二、pom.xml配置
<?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 https://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.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- springBoot启动器 -->
<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>
<!-- mybatis启动器 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<!-- thymeleaf -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- mysql数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- druid数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
三、application.properties文件(这里也可以用yml文件)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.example.mapper
mybatis.configuration.map-underscore-to-camel-case=true
四、创建UserMapper接口
package com.example.mapper;
import com.example.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface UserMapper {
/**
* 查询所有用户信息
*
* @return
*/
List<User> selectAllUsers();
/**
* 添加用户信息
*/
void insertUser(User user);
}
五、创建sql映射文件UserMapper.xml
这个文件我放到了resources文件夹里面的mapper文件夹内,因为我在application.properties映射的是这个位置。
<?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">
<!-- 配置表与类映射namespace:命名空间-->
<mapper namespace="com.example.mapper.UserMapper">
<!-- 查询所有用户信息 -->
<select id="selectAllUsers" resultType="com.example.pojo.User">
select * from t_user
</select>
<!-- 添加用户信息 -->
<insert id="insertUser" parameterType="com.example.pojo.User">
insert into
t_user(id,name,pwd,age)
values(#{id},#{name},#{pwd},#{age})
</insert>
</mapper>
六、创建service层接口UserService.java
package com.example.service;
import com.example.pojo.User;
import java.util.List;
public interface UserService {
/**
* 查询所有用户信息
*
* @return
*/
List<User> selectAllUsers();
/**
* 添加用户信息
*/
void insertUser(User user);
}
七、创建service的实现类UserServiceImpl.java
package com.example.service.impl;
import com.example.mapper.UserMapper;
import com.example.pojo.User;
import com.example.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> selectAllUsers() {
return userMapper.selectAllUsers();
}
@Override
public void insertUser(User user) {
userMapper.insertUser(user);
}
}
八、创建UserController类
package com.example.controller;
import com.example.pojo.User;
import com.example.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping(value = "/user")
public class UserController {
@Autowired
private UserService userService;
/**
* 查询所有的用户
*
* @return
*/
@RequestMapping(value = "/selectAllUsers")
public Object selectAllUsers() {
List<User> users = userService.selectAllUsers();
System.out.println(users);
return users;
}
/**
* 新增用户
*
* @return
*/
@RequestMapping(value = "/insertUser")
public Object insertUser() {
User user = new User();
user.setId(1);
user.setName("程序猿视界");
user.setPwd("9999");
user.setAge(21);
userService.insertUser(user);
return true;
}
}
这里面我测试了查找和新增的方法。
九、运行Spring boot项目
我这里用的idea直接可以运行,如果是sts插件可以右击项目run->Spring boot App运行。
首先运行新增:http://localhost:8080/user/insertUser 这个是地址。
然后看我们数据库
已经插入了数据。
下面再运行查找的方法:http://localhost:8080/user/selectAllUsers 这是地址
这里我们可以看到已经查找出来了。这是一个比较简单的小例子,大家练习的时候可以加上页面的操作。如果问题还请多多指正。