springboot 集成mybatis相比ssm框架而言,配置项大大降低,配置起来极为简单方便。
- 引入mybatis依赖,更新maven项目获取到jar包
<!--MySQL-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.1</version>
</dependency>
- 配置application.yml文件
spring:
# 数据库访问配置
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/springboot?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&characterEncoding=UTF-8
username: wzc
password: 123456
# 日志打印
logging:
level:
com.tqs.demo: debug
# MyBatis
mybatis:
# 搜索指定包别名
typeAliasesPackage: com.tqs.demo.model
# 配置mapper的扫描,找到所有的mapper.xml映射文件
mapperLocations: classpath*:mapper/*Mapper.xml
- 编写数据库接口层,xml Sql文件, 服务层和控制层的访问接口
这是本次案例的目录结构
创建实体类
package com.tqs.demo.model;
import lombok.Data;
import java.io.Serializable;
/**
* 用户对象 sys_user
*
*/
@Data
public class SysUser implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 用户ID
*/
private Long userId;
/**
* 用户名称
*/
private String userName;
/**
* 手机号码
*/
private String phonenumber;
/**
* 用户性别
*/
private String sex;
}
创建数据接口层
package com.tqs.demo.mapper;
import com.tqs.demo.model.SysUser;
import java.util.List;
public interface SysUserMapper
{
/**
* 根据条件查询用户列表
*
* @param sysUser 用户信息
* @return 用户信息集合信息
*/
List<SysUser> selectUserList(SysUser sysUser);
/**
* 通过用户名查询用户
*
* @param userName 用户名
* @return 用户对象信息
*/
SysUser selectUserByName(String userName);
}
创建服务层接口和实现类
package com.tqs.demo.service;
import com.tqs.demo.model.SysUser;
import java.util.List;
/**
* 用户 业务层
*
*/
public interface ISysUserService
{
/**
* 根据条件查询用户列表
*
* @param user 用户信息
* @return 用户信息集合信息
*/
List<SysUser> selectUserList(SysUser user);
/**
* 通过用户名查询用户
*
* @param userName 用户名
* @return 用户对象信息
*/
SysUser selectUserByName(String userName);
}
package com.tqs.demo.service.impl;
import com.tqs.demo.mapper.SysUserMapper;
import com.tqs.demo.model.SysUser;
import com.tqs.demo.service.ISysUserService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 用户 业务层处理
*
*/
@Service
public class SysUserServiceImpl implements ISysUserService
{
@Autowired
private SysUserMapper userMapper;
/**
* 根据条件分页查询用户列表
*
* @param user 用户信息
* @return 用户信息集合信息
*/
@Override
public List<SysUser> selectUserList(SysUser user)
{
return userMapper.selectUserList(user);
}
/**
* 通过用户名查询用户
*
* @param userName 用户名
* @return 用户对象信息
*/
@Override
public SysUser selectUserByName(String userName)
{
return userMapper.selectUserByName(userName);
}
}
创建控制层接口
package com.tqs.demo.controller;
import com.tqs.demo.model.SysUser;
import com.tqs.demo.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Auther: HP
* @Date: 2019/6/15 10:28
* @Description:
*/
@RestController
public class SysUserController {
@Autowired
private ISysUserService userService;
@GetMapping("userlist")
public List<SysUser> selectUserList(SysUser user)
{
return userService.selectUserList(user);
}
@GetMapping("userByName")
public SysUser selectUserByName(String userName)
{
return userService.selectUserByName(userName);
}
}
这里提供了两个接口查询进行数据库访问测试,分别查询所有的用户和根据用户名进行查询。
- 启动类添加扫包注解@MapperScan
package com.tqs.demo;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan(value = "com.tqs.demo.mapper")
public class SpringbootDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootDemoApplication.class, args);
}
}
到此我们项目搭建完毕,启动项目,在浏览器端分别访问 http://localhost:8001/userlist 和 http://localhost:8001/userByName?userName=admin,效果如下,成功获取数据库数据。