springboot和mybatis整合

使用springboot和mybatis开发服务已久,也配置过多个服务,但一直没有总结个整合教程,现整理汇总一下,自己留存,也是供需要学习的小伙伴们参考,闲话少说,进入正题。

1. 环境准备

本教程所使用的环境如下:

1. Java JDK1.8

2. Intellij IDEA 2017.3.5

3. Springboot2.0.6和mybatis3.4.6

4. mysql 5.7

5. maven 3.3.9

2. 项目创建

  1. 打开Idea创建新的项目,打开New Project项目后,按下图所示进行勾选:

spring项目基本配置

勾选后,点击next按钮,进入项目配置页面,输入组织名及项目名称等,参考下图:

Spring项目基本配置

项目的基本信息输入完成后,点击next按钮进入项目模块选择界面,按图中标示选择,如下:

选择web支持

选择web模块后,点击SQL,选择持久化数据配置,如下图所示:

选择持久化支持

在web和SQL相应的支持模块都选择完成后,点击next按钮,进入后续的项目设置界面。 

 接下来,一直点击next按钮进入下一个界面,直到出现有Finish按钮的界面,点击Finish按钮后,不要着急,耐心等待一会,idea会自动创建项目,并自动下载所需的依赖包后,所创建的项目是Maven类型的项目,项目就正常显示在idea中了。

下面是Idea的Project项目视图中显示的项目目录组织,主要关注下图选中的部分,包括项目的pom.xml、项目代码及资源目录等:

项目结构

 截止到这里,一个基本支持springboot和mybatis的项目就建立好了,还需要做些配置,并增加些示例代码后,我们就可以通过mybatis把数据存储到数据库中了,当然,也可以进行查询、修改、删除等。

3. 项目设置及代码实现

1. mysql数据库表准备

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `username` varchar(32) DEFAULT NULL,
  `password` varchar(32) DEFAULT NULL,
  `email` varchar(128) CHARACTER SET utf8mb4 DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;

2. 项目的pom.xml中增加mybatis相关配置,如下:

		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>1.3.2</version>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>

3.  创建实体类

public class User {
    private Integer id;
    private String username;
    private String password;
    private String email;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

4. 创建Mapper.xml文件

<?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="cn.rtui.bookmgmt.user.dao.UserDao" >
    <resultMap id="BaseResultMap" type="cn.rtui.bookmgmt.user.entity.User" >
        <id column="id" property="id" jdbcType="INTEGER" />
        <result column="username" property="username" jdbcType="VARCHAR" />
        <result column="password" property="password" jdbcType="VARCHAR" />
        <result column="email" property="email" jdbcType="VARCHAR" />
    </resultMap>
    <sql id="Base_Column_List" >
        id, username, password, email
    </sql>
    <select id="selectById" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
        select
        <include refid="Base_Column_List" />
        from user
        where id = #{id}
    </select>
    <delete id="deleteById" parameterType="java.lang.Integer" >
        delete from user
        where id = #{id}
    </delete>
    <insert id="insert" parameterType="cn.rtui.bookmgmt.user.entity.User" >
        insert into user (id, username, password,email)
        values (#{id}, #{username}, #{password},#{email})
    </insert>
    <update id="updateById" parameterType="cn.rtui.bookmgmt.user.entity.User" >
        update user
        set username = #{username},password = #{password},age = #{age}
        where id = #{id}
    </update>
</mapper>

5. 创建Dao接口类

public interface UserDao {
    int insert(User user);

    int deleteById(Integer id);

    int updateById(User user);

    User selectById(Integer id);
}

 6. 创建service类

@Service
public class UserService {
    @Autowired
    UserDao userDao;

    public int insert(User user){
        return userDao.insert(user);
    }

    public int deleteById(Integer id){
        return userDao.deleteById(id);
    }

    public int updateById(User user){
        return userDao.updateById(user);
    }

    public User selectById(Integer id){
        return userDao.selectById(id);
    }
}

 7. 创建Controller类

@RestController
@RequestMapping(value = "user")
public class UserController {
    @Autowired
    UserService userService;

    @RequestMapping(value = "insert")
    int insert(@RequestBody User user){
        return userService.insert(user);
    }

    @RequestMapping(value = "delete")
    int deleteById(Integer id){
        return userService.deleteById(id);
    }

    @RequestMapping(value = "update")
    int updateById(User user){
        return userService.updateById(user);
    }

    @RequestMapping(value = "select")
    User selectById(Integer id){
        return userService.selectById(id);
    }
}

8. 配置扫描接口类,在应用的主类中配置,如下图所示:

9. 修改application.yml文件,增加mybatis的相关配置,建议使用简洁的yml配置文件方式,如你的项目中没有这个文件,请新建一个,同时把application.properties文件删除,如果application.properties文件有配置信息,可以转换到yml文件中

server:
  port: 9080

spring:
  datasource:
    ##数据源配置
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/demo
    username: root
    password: 123456

##mybatis基本配置
mybatis:
  mapper-locations: classpath:mapping/*.xml            #mapper映射的xml文件的所在路径
  type-aliases-package: cn.rtui.bookmgmt.user.entity   #实体类的路径

按照以上信息配置完成后,springboot与mybatis的集成好了,就可以编译运行了,上述配置的例子中,controller提供的是rest类接口,get类型的请求可以使用浏览器直接调用,post请求可以使用postman进行调用测试。

示例代码请下载:示例下载点这里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值