SpringBoot 整合 Mybatis

  • 一、SpringBoot创建项目
  • 二、添加相关依赖
  • 2.1打开pom.xml文件 -> 使用EditStarter 插件添加依赖
  • 2.2添加的依赖
  • 三、配置yml配置文件
  • 3.1将.properties配置文件修改成.yml配置文件
  • 3.2 配置内容
  • 3.3创建目录结构
  • 四、创建简单数据库,表
  • 4.1使用Navicat For Mysql 可视化工具创建数据库
  • 4.2填写数据库名称,选择字符集等
  • 4.3创建usertb表,插入简单数据
  • 五、创建Controller---dao
  • 5.1UserController
  • 5.2UserService
  • 5.3UserServiceImpl
  • 5.4Dao层(写法一:注解方式)
  • 5.5Dao层(写法二:.xml映射文件形式)
  • 5.5.1首先注释掉UserDao里的Sql语句
  • 5.5.2创建UserMapper.xml
  • 5.5.3将从官网拷贝的xml文件头复制进来
  • 5.5.4指定命名空间
  • 5.5.5 select 标签
  • 5.5.6整个UserMapper.xml
  • 六、访问地址及成功结果
  • 七、*mapper.xml中一些常用的标签
  • 7.1sql标签
  • 7.2include标签
  • 7.3where标签
  • 7.4if标签
  • 7.5 update,select ,delete,insert
  • 7.6UserMapper.xml中使用这些标签
  • 八、关于Mybatis的学习
  • 九、Demo案例的下载地址


一、SpringBoot创建项目

点击前往创建项目教程:点击前往

二、添加相关依赖

2.1打开pom.xml文件 -> 使用EditStarter 插件添加依赖

EditStarter 插件使用教程:点击前往

2.2添加的依赖

springboot整合spark springboot整合mybatis_mysql

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

三、配置yml配置文件

3.1将.properties配置文件修改成.yml配置文件

springboot整合spark springboot整合mybatis_mysql_02

3.2 配置内容

springboot整合spark springboot整合mybatis_spring boot_03

server:
  port: 1314
  servlet:
    context-path: /demo
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/demo?serverTimezone=GMT%2B8&characterEncoding=utf8
    username: root
    password: zzh980828
mybatis:
  mapper-locations: classpath:/mapper/*.xml
  configuration:
    default-statement-timeout: 60
    map-underscore-to-camel-case: true
logging:
  level:
    com.city: debug
  file:
    path: d:/demo/log

3.3创建目录结构

springboot整合spark springboot整合mybatis_mysql_04

四、创建简单数据库,表

4.1使用Navicat For Mysql 可视化工具创建数据库

右键->新建数据库

springboot整合spark springboot整合mybatis_spring boot_05

4.2填写数据库名称,选择字符集等

springboot整合spark springboot整合mybatis_springboot整合spark_06

4.3创建usertb表,插入简单数据

springboot整合spark springboot整合mybatis_springboot整合spark_07

DROP TABLE IF EXISTS `usertb`;
CREATE TABLE `usertb` (
  `userid` int NOT NULL AUTO_INCREMENT,
  `username` varchar(20) DEFAULT NULL,
  `usersex` varchar(10) DEFAULT NULL,
  PRIMARY KEY (`userid`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb3;

-- ----------------------------
-- Records of usertb
-- ----------------------------
INSERT INTO `usertb` VALUES ('1', '张三', '男');
INSERT INTO `usertb` VALUES ('2', '李四', '男');
INSERT INTO `usertb` VALUES ('3', '翠花', '女');
INSERT INTO `usertb` VALUES ('4', '桂花', '女');

五、创建Controller—dao

5.1UserController

@RestController
public class UserController {
    @Autowired
    private UserService userService;

    @RequestMapping("/queryUser")
    public List<User> queryUsers(){
        List<User> users = userService.queryUsers();
        for (User user : users){
            System.out.println(user);
        }
        return users;
    }
    @RequestMapping("/queryUserByUserSex")
    public List<User> queryUserByUserSex(String userSex){
        List<User> users = userService.queryUsersByUserSex(userSex);
        for (User user : users){
            System.out.println(user);
        }
        return users;
    }
}

5.2UserService

public interface UserService {
    List<User> queryUsers();
    List<User> queryUsersByUserSex(String userSex);
}

5.3UserServiceImpl

@Service
public class UserServiceImpl implements UserService{
    @Autowired
    private UserDao userDao;

    @Override
    public List<User> queryUsers() {
        List<User> users = userDao.queryUsers();
        return users;
    }

    @Override
    public List<User> queryUsersByUserSex(String userSex) {
        List<User> users = userDao.queryUsersByUserSex(userSex);
        return users;
    }
}

5.4Dao层(写法一:注解方式)

@Mapper
public interface UserDao {
    @Select("select * from usertb")
    List<User> queryUsers();
    @Select("select * from usertb where usersex = #{userSex}")
    List<User> queryUsersByUserSex(String userSex);
}

这种方法以注解的方式写Sql语句

5.5Dao层(写法二:.xml映射文件形式)

5.5.1首先注释掉UserDao里的Sql语句

springboot整合spark springboot整合mybatis_spring boot_08

5.5.2创建UserMapper.xml

springboot整合spark springboot整合mybatis_mysql_09


叫什么无所谓,我们会指定具体和哪一个Dao相对应,即命名空间(namespace)

5.5.3将从官网拷贝的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="">
</mapper>

5.5.4指定命名空间

将UserDao的包路径拷贝做namespace的值

springboot整合spark springboot整合mybatis_mybatis_10


springboot整合spark springboot整合mybatis_mysql_11

5.5.5 select 标签

id:指定对应的方法名

resultType:指定返回值类型

springboot整合spark springboot整合mybatis_mysql_12


在标签内部写sql语句

springboot整合spark springboot整合mybatis_springboot整合spark_13

5.5.6整个UserMapper.xml

springboot整合spark springboot整合mybatis_java_14

<?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.city.demo.springbootmybatis.dao.UserDao">
    <select id="queryUsers" resultType="com.city.demo.springbootmybatis.pojo.User">
        select * from usertb;
    </select>
    <select id="queryUsersByUserSex" resultType="com.city.demo.springbootmybatis.pojo.User">
        select * from usertb where usersex = #{userSex};
    </select>
</mapper>

六、访问地址及成功结果

地址一:http://localhost:1314/demo/queryUser

springboot整合spark springboot整合mybatis_java_15

地址二:http://localhost:1314/demo/queryUserByUserSex?userSex=女

springboot整合spark springboot整合mybatis_spring boot_16

七、*mapper.xml中一些常用的标签

7.1sql标签

作用:存放一段想复用的sql。
id:给这段想复用的sql命名,方便引用

7.2include标签

作用:引用你想复用的sql语句
refid:指定你想引用的sql语句

7.3where标签

作用:代替你的where里边存放where条件

7.4if标签

作用:进行判断
test:填写你想存放的判断条件

7.5 update,select ,delete,insert

作用:就是对应的update,select,delet,insert

7.6UserMapper.xml中使用这些标签

springboot整合spark springboot整合mybatis_mybatis_17

<?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.city.demo.springbootmybatis.dao.UserDao">
    <select id="queryUsers" resultType="com.city.demo.springbootmybatis.pojo.User">
        select *
        <include refid="queryFrom"></include>
    </select>
    <select id="queryUsersByUserSex" resultType="com.city.demo.springbootmybatis.pojo.User">
        select * 
         <include refid="queryFrom"></include>
         <where>
             <if test="userSex!='' and userSex!=null">
                 usersex = #{userSex}
             </if>
         </where>
    </select>
    <sql id="queryFrom">
        from usertb
    </sql>
</mapper>

八、关于Mybatis的学习

本文章只是对Mybatis的入门学习,其实关于Mybatis学习还有很多,可以前往官网进行系统的学习!

九、Demo案例的下载地址

点击前往0积分下载