mybatis3开始支持java注解,使用java注解可以替代xml配置文件,简化代码。下面来看一下怎么在spring boot中使用mybatis注解。

1 使用mybatis注解需要的配置。如下面的代码所示,使用@MapperScan来扫描注册mybatis数据库接口类,其中basePackages属性表明接口类所在的包,sqlSessionTemplateRef表明接口类使用的SqlSessionTemplate。如果项目需要配置两个数据库,@MapperScan也需要分别配置。

@Configuration
@MapperScan(basePackages="com.boot.test.mapper",sqlSessionTemplateRef="sqlSessionTemplate")
public class DatabaseConfig { @Bean
@ConfigurationProperties(prefix = "test.datasource")
public DataSource dataSource() {
return DataSourceBuilder.create().build();
} @Bean
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
return sessionFactory.getObject();
} @Bean
public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}

2 mybatis注解介绍
mybatis3支持多个java注解,下面介绍几个基本的注解。
@Insert

 @Insert("insert into t_user(name,age,gender) values (#{name},#{age},#{gender})")
public int addUser(User user) throws DataAccessException;

如上面的代码所示,使用@Insert注解可以在()中直接写sql语句,传参可以用#{}实现,其中name字段名直接对应User类中的name字段,肿么样,有没有很直观方便:)

@Select

@Select("select age,gender from t_user where name={name}")
public User queryUser(String name) throws DataAccessException;

@Select 注解所查询出的字段可以直接绑定到User类中对应的字段中,由于在类中可以import对应的类,免去了在xml中配置结果集的麻烦。

@SelectKey

 @SelectKey(statement = "select max(id) from t_id", before = true, resultType = long.class, keyProperty = "id")
@Insert("insert into t_user(id,name,age,gender) values (#{id},#{name},#{age},#{gender})")
public int addUser(User user) throws DataAccessException;

@SelectKey注解用于查询一下需要的前置字段,如上面的代码所示先查出id字段的值,然后插入到t_user表中,一般配合@Insert和@Update
注解使用。

参考链接:https://www.jianshu.com/p/b1cad28c34eb

Spring Boot集成Mybatis注解相关的更多相关文章

  1. 【spring boot】14.spring boot集成mybatis,注解方式OR映射文件方式AND pagehelper分页插件【Mybatis】pagehelper分页插件分页查询无效解决方法

    spring boot集成mybatis,集成使用mybatis拖沓了好久,今天终于可以补起来了. 本篇源码中,同时使用了Spring data JPA 和 Mybatis两种方式. 在使用的过程中一 ...

  2. spring boot集成mybatis(2) - 使用pagehelper实现分页

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  3. Spring Boot集成MyBatis开发Web项目

    1.Maven构建Spring Boot 创建Maven Web工程,引入spring-boot-starter-parent依赖 <project xmlns="http://mav ...

  4. spring boot集成mybatis(1)

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  5. spring boot集成mybatis(3) - mybatis generator 配置

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  6. 详解Spring Boot集成MyBatis的开发流程

    MyBatis是支持定制化SQL.存储过程以及高级映射的优秀的持久层框架,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集. spring Boot是能支持快速创建Spring应用的Java框 ...

  7. spring boot集成MyBatis 通用Mapper 使用总结

    spring boot集成MyBatis 通用Mapper 使用总结 2019年 参考资料: Spring boot集成 MyBatis 通用Mapper SpringBoot框架之通用mapper插 ...

  8. spring boot集成mybatis只剩两个sql 并提示 Cannot obtain primary key information from the database, generated objects may be incomplete

    前言 spring boot集成mybatis时只生成两个sql, 搞了一个早上,终于找到原因了 找了很多办法都没有解决, 最后注意到生成sql的时候打印了一句话: Cannot obtain pri ...

  9. spring boot 集成 Mybatis,JPA

    相对应MyBatis, JPA可能大家会比较陌生,它并不是一个框架,而是一组规范,其使用跟Hibernate 差不多,原理层面的东西就不多讲了,主要的是应用. Mybatis就不多说了,SSM这三个框 ...

随机推荐

  1. Spring 开发之组件赋值

    1. @Value & @PropertySource 1.1 使用方式 @PropertySource:读取外部配置文件中的 k/v 保存到运行的环境变量中;加载完外部的配置文件以后使用 $ ...

  2. SAP Cloud Platform integration上创建一个最简单的iFlow

    登录SAP CPI控制台,点击这个铅笔图标进入工作区域: 选择一个已经存在的content package: 在这个content package里创建一个新的iFlow: 默认生成的iFlow模型如 ...

  3. mysql: show processlist 详解

    最近排查一些MySQL的问题,会经常用到 show processlist,所以在这里把这个命令总结一下,做个备忘,以备不时只需. show processlist 是显示用户正在运行的线程,需要注意 ...

  4. jmter脚本运行结果实时监控

    一.背景 我们很多时候在使用JMeter做性能测试,我们很难及时察看压测过程中应用的性能状况,总是需要等到测试完成后去看Report 二.解决方案 JMeter引入Backend Listener,用 ...

  5. CodeForces - 1159B

    题目链接:https://vjudge.net/problem/CodeForces-1159B 题目意思:任选选两个元素,分别为a[i],a[j]. 问 都满足K*| i -  j | <= ...

  6. Pytorch并行计算:nn.parallel.replicate, scatter, gather, parallel_apply

    import torch import torch.nn as nn import ipdb class DataParallelModel(nn.Module): def __init__(self ...

  7. 【比赛游记】NOI2019打铁记

    上接 NOIWC2019冬眠记.(THUPC,CTS,APIO)2019四连爆蛋记 和 THUSC2019酱油记. Day0.5 笔试 AK 是容易的. 国家队选手见面会太好玩了啊! Day1 Day ...

  8. [转]etcdctl v2 v3 使用指南

    原文:https://blog.csdn.net/kozazyh/article/details/79586530 ------------------------------------------ ...

  9. Tomcat管理

    Tomcat日志 /data/env/tomcat8546/logs/catalina.out echo "" > catalina.out Tomcat配置文件 /data ...

  10. 201671030122 杨凡亿 实验十四 团队项目评审&课程学习总结

    项目 内容 课程名称 2016级计算机科学与工程学院软件工程(西北师范大学) 作业要求 实验十四 团队项目评审&课程学习总结 课程学习目标 (1)掌握软件项目评审会流程(2)反思总结课程学习内 ...