SpringBoot简单整合Mybatis
Posted guming1125
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot简单整合Mybatis相关的知识,希望对你有一定的参考价值。
前言
虽然之前跟着别人的视频做了一个SpringBoot的一个小项目,但是一直不太明白怎么将SpringBoot和Mybatis整合在一起,所以,今天花了一点时间用他们做了一个demo,并作了以下的总结,帮助自己更好的掌握好他们的使用.
项目搭建
创建项目
-
新建一个Spring Initializr项目
-
创建项目的文件结构以及jdk的版本
此demo选择的JDK版本为1.8
-
选择项目所需要的依赖
在WEB里面选择”Spring Web Starter”
在SQL里面选择”mysql Driver” “JDBC API” “Mybatis Framework”
在Developer Tools里面选择”Lombok” -
完成项目创建
数据库准备
1 create table user 2 ( 3 id INTEGER auto_increment, 4 user_name varchar(30) not null, 5 password varchar(30) not null, 6 constraint user_pk 7 primary key (id) 8 );
项目构建
-
entity类
package com.example.entity; import lombok.Data; @Data public class User private Integer id; private String userName; private String password;
原本需要写get\set方法,但是由于使用了lombok下的@Data,再在IDEA中引入一个插件即可便捷管理实体类,不需要繁琐的get\set\toString方法.
插件的安装只需要正在IDEA的设置里面搜索”lombok”即可.
- Controller类
package com.example.controller; import com.example.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/userController") public class UserController @Autowired private UserService userService; @RequestMapping("getUser/id") public String getUser(@PathVariable int id) String user = userService.selectUserById(id).toString(); return user;
通过RequestMapping访问我们控制类中的方法,得到传入id对应的User对象的值.所以,我们就需要定义一个UserService来实现查找的方法.
- Service类
package com.example.service; import com.example.entity.User; import com.example.mapper.UserMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class UserService @Autowired private UserMapper userMapper; public User selectUserById(int id) return userMapper.selectUserById(id);
在Service类中,通过Mapper映射的方式,调用Mapper里的接口,而在Mapper接口里面,我们完成和Mybatis的结合.
- Mapper接口 和 Mapper.xml
package com.example.mapper; import com.example.entity.User; import org.springframework.stereotype.Repository; @Repository public interface UserMapper User selectUserById(int id);
此接口和xml文件里面相互对应,使用mybatis简化以往JDBC对数据库的操作,只需要在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="com.example.mapper.UserMapper"> <resultMap id="BaseResultMap" type="com.example.entity.User"> <result column="id" jdbcType="INTEGER" property="id" /> <result column="user_name" jdbcType="VARCHAR" property="userName" /> <result column="password" jdbcType="VARCHAR" property="password" /> </resultMap> <select id="selectUserById" resultMap="BaseResultMap"> select * from user where id = #id </select> </mapper>
在mapper的xml文件中需要注意namespace要和mapper接口相对应,sql语句的id要和mapper接口中的方法相对应,以及ResultMap里面column要和数据库中表的列名相对应.
-
application配置文件
server: port: 8080 spring: datasource: url: jdbc:mysql://localhost:3306/mybatis_user?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC driver-class-name: com.mysql.cj.jdbc.Driver username: root password: password mybatis: mapper-locations: classpath:mapping/*Mapper.xml type-aliases-package: com.example.entity
在以上过程中,即可根据需要配置application文件,此项目使用application.yml作为配置文件.
-
server.port:表示项目运行在本地的8080端口.
-
spring.datasource.*:表示连接数据库的配置
-
mybatis:对mybatis的实体类,xml租借进行声明,让xml和mapper接口能对应起来
项目运行
在springboot运行文件上加个@MapperScan(“com.example.mapper”)给出mapper接口的访问路径,可以让springboot能扫描到mapper接口.
最后在访问链接 http://127.0.0.1:8080/userController/getUser/1 即可实现.在网页页面显示user对象的数据内容
以上是关于SpringBoot简单整合Mybatis的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot整合LayUI和Thymeleaf制作简单登录页面
SpringBoot整合LayUI和Thymeleaf制作简单登录页面