SpringBoot整合使用MyBatis

本文介绍了如何在Spring Boot项目中整合MyBatis,包括使用mybatis-spring-boot-starter自动化配置,通过注解和XML方式开发Mapper接口。详细讲述了无配置文件使用注解的方式以及如何设置极简XML版本,简化了传统MyBatis的映射文件操作。
摘要由CSDN通过智能技术生成

一个Java小白的学习之路 个人博客 youngljx.top

Mybatis和Spring Boot的整合的两种方式

快速生成代码工具 EasyCode
1:使用 mybatis-spring-boot-starter

首先创建工程时自动导入整合依赖:

<!--mybatis提供的整合spring的jar包 -->
      <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
      </dependency>
         <!-- 数据库链接依赖 -->
     <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
1.1:无配置文件使用注解
application.properties 添加相关配置
mybatis.type-aliases-package=实体包全限名,设置别名
配置数据源
spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
spring.datasource.username = root
spring.datasource.password =qwert

*(springboot会自动加载spring.datasource.相关配置,数据源就会自动注入到sqlSessionFactory中,
sqlSessionFactory会自动注入到Mapper中)

在启动类中添加对mapper包统一扫描@MapperScan(""),或者直接在各Mapper类上面添加注解@Mapper

*开发Mapper

public interface UserMapper {

/*
sql语句写法遵循数据库书写规则
@Select 是查询类的注解,所有的查询均使用这个
@Result 修饰返回的结果集,关联实体类属性和数据库字段一一对应,如果实体类属性和数据库属性名保持一致,就不需要这个属性来修饰。
@Insert 插入数据库使用,直接传入实体类会自动解析属性到对应的值
@Update 负责修改,也可以直接传入对象
@Delete 负责删除
*/

@Select("SELECT * FROM users")
@Results({
    @Result(property = "userSex",  column = "user_sex", javaType = UserSexEnum.class),
    @Result(property = "nickName", column = "nick_name")
})
List<UserEntity> getAll();

@Select("SELECT * FROM users WHERE id = #{id}")
@Results({
    @Result(property = "userSex",  column = "user_sex", javaType = UserSexEnum.class),
    @Result(property = "nickName", column = "nick_name")
})
UserEntity getOne(Long id);

@Insert("INSERT INTO users(userName,passWord,user_sex) VALUES(#{userName}, #{passWord}, #{userSex})")
void insert(UserEntity user);

@Update("UPDATE users SET userName=#{userName},nick_name=#{nickName} WHERE id =#{id}")
void update(UserEntity user);

@Delete("DELETE FROM users WHERE id =#{id}")
void delete(Long id);

}

1.2极简xml版本

极简xml版本保持映射文件的老传统,优化主要体现在不需要实现dao的实现层,系统会自动根据方法名在映射文件中找对应的sql.

application.properties如下配置

#1:加载mybatis配置文件,相应的src/main/resources目录下应有对应文件夹
      #指明mybatis基础配置文件和实体类映射文件的地址
    mybatis.config-locations=classpath:mybatis/config/mybatisConfig.xml
    mybatis.mapper-locations=classpath:mybatis/*Mapper.xml
    #设置别名
    mybatis.type-aliases-package=demoApplication.entity
#2:配置数据源
spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
spring.datasource.username = root
spring.datasource.password =qwert
指定目录下的映射文件写同mybatis之前写法

简单总结一下,未完待续。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值