欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SpringBoot系列-整合Mybatis(注解方式)

程序员文章站 2023-11-08 20:05:46
上一篇文章 "《SpringBoot系列 整合Mybatis(XML配置方式)》" 介绍了XML配置方式整合的过程,本文介绍下SpringBoot通过注解方式整合Mybatis的过程。 [TOC] 一、常用注解说明 @Mapper 可以给接口自动生成一个实现类,让spring对mapper接口的be ......

目录

上一篇文章《springboot系列-整合mybatis(xml配置方式)》介绍了xml配置方式整合的过程,本文介绍下springboot通过注解方式整合mybatis的过程。

一、常用注解说明

  • @mapper

可以给接口自动生成一个实现类,让spring对mapper接口的bean进行管理,并且可以省略去写复杂的xml文件。

  • @options

配置映射语句的属性。例如:@options(usegeneratedkeys = true, keycolumn = "id"):指定表的自增主键并自动绑定到实体类对象。

  • @result

修饰返回的结果集,关联实体类属性和数据库字段一一对应,如果实体类属性和数据库属性名保持一致,就不需要这个属性来修饰。

  • @param

如果你的映射方法的形参有多个,这个注解使用在映射方法的参数上就能为它们取自定义名字。若不给出自定义名字,多参数(不包括 rowbounds 参数)则先以 "param" 作前缀,再加上它们的参数位置作为参数别名。例如 #{param1}, #{param2}。

  • @select、@delete、@insert、@update

这四个注解分别代表将会被执行的 sql 语句。它们用字符串数组(或单个字符串)作为参数。如果传递的是字符串数组,字符串之间先会被填充一个空格再连接成单个完整的字符串。

二、实战

新建一个spring boot项目spring-boot-mybatis-annotation,其他代码上一篇文章已经有了,下面列下注解版本的主要代码:

1.映射类usermapper

@mapper
public interface usermapper {

    /*
    * 查询 所有用户
    */
    @select("select * from user ")
    list<user> queryallusers();


    /*
     * 新增数据,并把主键绑定到user实体类
     */
    @options(usegeneratedkeys = true, keyproperty = "id")
    @insert("insert into user(name,password) values (#{name},#{password})")
    public int add(user user);
}

2.添加访问控制层

usercontroller代码如下:

/**
 * usercontroller
 *
 * @author: java_suisui
 */
@slf4j
@restcontroller
@requestmapping("/user")
public class usercontroller {
    @autowired
    private userservice userservice;

    /**
     * 查询 所有用户
     */
    @getmapping("/queryallusers")
    public list<user> queryallusers() {
        return userservice.queryallusers();
    }

    @getmapping("/add")
    public user add(user user) {
        int num =  userservice.add(user);
        return user;
    }
}

三、测试

1.测试查询所有用户

本地打开浏览器,访问http://localhost:8080/user/queryallusers,成功后返回如下结果:

[{"id":1,"name":"张三","password":"123456","sex":0,"des":"无备注"},
{"id":2,"name":"李四","password":"123456","sex":0,"des":"无备注"}]

2.测试新增用户

本地打开浏览器,访问http://localhost:8080/user/add?name=test1&password=123456,成功后返回如下结果:

{"id":13,"name":"test1","password":"123456","sex":null,"des":null}

四、注意事项

1.如果有很多mapper接口如何一次性扫描

直接在程序启动类添加@mapperscan注解即可。

例如:

@mapperscan(basepackages= {"com.example.springboot.mybatisannotation.dao.mapper"})

2.springboot mybatis增加驼峰命名规则

因为是注解版,没有配置文件,所以springboot增加驼峰命名需要增加一个自定义配置类(configurationcustomizer)。

例如:

/**
 * mybatis 注解版
 */
@configuration
public class mybatisconfig {

    @bean
    public configurationcustomizer configurationcustomizer() {
        return new configurationcustomizer() {

            @override
            public void customize(org.apache.ibatis.session.configuration configuration) {
                configuration.setmapunderscoretocamelcase(true);//设置驼峰命名规则  
            }
        };
    }
}  

到此springboot整合mybatis(xml配置方式)的功能已经全部实现,有问题欢迎留言沟通哦!

完整源码地址:

推荐阅读

1.springboot系列-整合mybatis(xml配置方式)

1.java中打印日志,这4点很重要!

3.springboot集成jwt实现权限认证

4.一分钟带你了解jwt认证!

5.springboot中如何优雅的读取yml配置文件?


限时领取免费java相关资料,涵盖了java、redis、mongodb、mysql、zookeeper、spring cloud、dubbo/kafka、hadoop、hbase、flink等高并发分布式、大数据、机器学习等技术。
关注下方公众号即可免费领取:

SpringBoot系列-整合Mybatis(注解方式)