springboot基础mybatis还是很简单的,比之前springmvc集成mybatis要少很多配置,只要大家按照步骤一步一步来,几分钟就能实现。具体做法如下:
添加依赖
在pom文件中添加4个依赖
- mybatis支持:mybatis-spring-boot-starter包含所有的springboot和mybatis依赖
- druid支持:阿里数据库连接池
- lombook支持:主要是简化代码用
- mysql驱动:数据库我们使用mysql,所以加上mysql的驱动
<!-- 添加mybatis依赖 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.5</version>
</dependency>
<!--添加mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
<scope>runtime</scope>
</dependency>
<!--添加数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.16</version>
</dependency>
<!--代码简化工具-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
<scope>provided</scope>
</dependency>
</dependencies>
相关配置
在application.yml配置数据源和mybatis相关配置配置数据源配置mapper文件路径配置mapper别名
server:
port: 8089 # 配置端口
servlet:
context-path: /moyundong # 配置项目名称
# 配置数据源
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/springbootdata
username: root
password: root
# 配置mybatis
mybatis:
mapper-locations: classpath:com/mapper/*.xml # mybatis的路径,我们放到resources下的com/mapper文件夹下面
type-aliases-package: com.moyundong.entity # 默认别名就是实体类名,或者类名首字母小写 SysUser | sysUser
创建数据库表
- 先创建一个springbootdata的数据库,或者叫别的名字,注意与数据用配置的名称一样就可以了。
- 创建SysUser表
CREATE TABLE `sys_user` (
`id` varchar(64) NOT NULL COMMENT '主键id',
`username` varchar(100) DEFAULT NULL COMMENT '登录账号',
`password` varchar(255) DEFAULT NULL COMMENT '密码',
`birthday` datetime DEFAULT NULL COMMENT '生日',
`email` varchar(100) DEFAULT NULL COMMENT '电子邮件',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';
创建实体类
在com.moyundong.entity包下创建SysUser实体类,这个实体类与数据库表sys_user是对应的,sys_user的首字母大写,去掉下划线,并且下划线后面的首字母也要大写,这样sys_user表对应的实体类就是SysUser了。
@Data
public class SysUser {
private String id;
private String username;
private String password;
private Date birthday;
private String email;
}
创建dao接口
在com.moyundong.dao目录下创建相关dao,首先我们创建一个BaseDao,里面可以写一些公共基础方法。为了演示,我只写了两个方法,一个保存,一个查询。
public interface BaseDao<T> {
void save(T t);
List<T> findAll();
}
再创建我们的SysUserDao,他继承了BaseDao,就不用再写save和findAll方法了,如果还有其它dao,都可以继承BaseDao
public interface SysUserDao extends BaseDao<SysUser> {
}
创建mapper配置文件
在resource/com/mapper目录下创建SysUserMapper.xml文件,主要定义了save和findAll两个方法,内容如下:
<?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.moyundong.dao.SysUserDao">
<insert id="save" parameterType="sysUser">
INSERT INTO sys_user VALUES (#{id},#{username},#{password},#{birthday},#{email})
</insert>
<select id="findAll" resultType="SysUser">
SELECT id,username,password,birthday,email from sys_user
</select>
</mapper>
创建service接口
在com.moyundong.service包下创建SysUserService接口
public interface SysUserService {
void save(SysUser sysUser);
List<SysUser> findAll();
}
创建service实现类
在com.moyundong.service包下创建SysUserServiceImpl类,实现了SysUserService接口,并且注入了sysUserDao实例
@Service
@Transactional
public class SysUserServiceImpl implements SysUserService {
@Autowired
private SysUserDao sysUserDao;
@Override
public void save(SysUser sysUser) {
sysUser.setId(UUID.randomUUID().toString());
sysUserDao.save(sysUser);
}
@Override
public List<SysUser> findAll() {
return sysUserDao.findAll();
}
}
创建controller
在com.moyundong.controller包下创建SysUserController,里面有两个方法,save和findAll,并且注入了sysUserService实例
@RestController
@RequestMapping("sysUser")
public class SysUserController {
@Autowired
private SysUserService sysUserService;
@RequestMapping("save")
public String save(SysUser sysUser){
sysUserService.save(sysUser);
return "添加成功";
}
@RequestMapping("findAll")
public Object findAll(){
return sysUserService.findAll();
}
}
启动类中扫描dao
入口类Test04Application加上 MapperScan("com.moyundong.dao")注解来扫描dao包
@SpringBootApplication
@MapperScan("com.moyundong.dao")
public class Test04Application extends SpringBootServletInitializer {
public static void main(String[] args) throws UnknownHostException {
SpringApplication.run(Test04Application.class, args);
}
}
测试
启动Test04Application运行项目。
- 在浏览器输入http://localhost:8089/moyundong/sysUser/save?username=water2&password=111&birthday=2019/01/09&email=abc cc.com来新增数据
- 在浏览器输入http://localhost:8089/moyundong/sysUser/findAll来查询数据
注意
- 为了演示方便,两个方法都用了get请求方式,实际应用中,save应该是post请求方式。
- 本节只讲了最基本的知识,实际工作中的场景比较复杂,但是最基础的就是这些。
本节项目目录结构如下: