• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > 详解Spring boot上配置与使用mybatis plus

详解Spring boot上配置与使用mybatis plus

作者:junzibuqi124 字体:[增加 减小] 来源:互联网 时间:2017-05-28

junzibuqi124 通过本文主要向大家介绍了spring boot注解详解,spring boot详解,spring配置文件详解,spring注解详解,spring aop详解等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

http://mp.baomidou.com/#/?id=%e7%ae%80%e4%bb%8b 这个是mybatisplus的官方文档,上面是mybtisplus的配置使用方法,以及一些功能的介绍

下面开始配置

maven依赖

    <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>1.1.1</version>
    </dependency>
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus</artifactId>
      <version>2.0-beta</version>
    </dependency>
</div>

config文件

@Configuration
public class MybatisPlusConfig {
  @Autowired
  private DataSource dataSource;

  @Autowired
  private MybatisProperties properties;

  @Autowired
  private ResourceLoader resourceLoader = new DefaultResourceLoader();

  @Autowired(required = false)
  private Interceptor[] interceptors;

  @Autowired(required = false)
  private DatabaseIdProvider databaseIdProvider;

  /**
   *  mybatis-plus分页插件
   */
  @Bean
  public PaginationInterceptor paginationInterceptor() {
    PaginationInterceptor page = new PaginationInterceptor();
    page.setDialectType("mysql");
    return page;
  }
  /**
   * 这里全部使用mybatis-autoconfigure 已经自动加载的资源。不手动指定
   * 配置文件和mybatis-boot的配置文件同步
   * @return
   */
  @Bean
  public MybatisSqlSessionFactoryBean mybatisSqlSessionFactoryBean() {
    MybatisSqlSessionFactoryBean mybatisPlus = new MybatisSqlSessionFactoryBean();
    mybatisPlus.setDataSource(dataSource);
    mybatisPlus.setVfs(SpringBootVFS.class);
    if (StringUtils.hasText(this.properties.getConfigLocation())) {
      mybatisPlus.setConfigLocation(this.resourceLoader.getResource(this.properties.getConfigLocation()));
    }
    mybatisPlus.setConfiguration(properties.getConfiguration());
    if (!ObjectUtils.isEmpty(this.interceptors)) {
      mybatisPlus.setPlugins(this.interceptors);
    }
    MybatisConfiguration mc = new MybatisConfiguration();
    mc.setDefaultScriptingLanguage(MybatisXMLLanguageDriver.class);
    mybatisPlus.setConfiguration(mc);
    if (this.databaseIdProvider != null) {
      mybatisPlus.setDatabaseIdProvider(this.databaseIdProvider);
    }
    if (StringUtils.hasLength(this.properties.getTypeAliasesPackage())) {
      mybatisPlus.setTypeAliasesPackage(this.properties.getTypeAliasesPackage());
    }
    if (StringUtils.hasLength(this.properties.getTypeHandlersPackage())) {
      mybatisPlus.setTypeHandlersPackage(this.properties.getTypeHandlersPackage());
    }
    if (!ObjectUtils.isEmpty(this.properties.resolveMapperLocations())) {
      mybatisPlus.setMapperLocations(this.properties.resolveMapperLocations());
    }
    return mybatisPlus;
  }
}

</div>

插件以@bean的形式添加在config文件里例如:

@Bean
  public PaginationInterceptor paginationInterceptor() {
    PaginationInterceptor page = new PaginationInterceptor();
    page.setDialectType("mysql");
    return page;
  }
</div>

这是一个分页插件。

代码生成器参考官方文档,但是他的代码生成器可供修改的地方不多,只能控制一下代码生成路径之类的,自由度不高,推荐把mybatisplus 代码生成部分单独抽出来,修改成自己合适的,再打成jar包进行依赖。

springboot properties文件配置

# mybatis_config
mybatis.mapper-locations=classpath:com/boot/mapper/xml/*Mapper.xml 
mybatis.typeAliasesPackage=com.boot.entity
</div>

前一个是xml文件的路径

后面一个时别名包路径

在springboot的启动类上加上注解

@MapperScan("com.boot.mapper*")
@SpringBootApplication
public class BootApplication {
</div>

@mapperscan 里面是dao的扫描路径

mybatisplus 提供了比较齐全的crud即增删改查,不需要在mapper.xml里写sql可以直接调用
例子:

//可以在controller:
Egg egg = new Egg();
eggService.insert(egg);
//可以在service
Egg egg = new Egg();
this.selectList(new EntityWrapper<Egg >(egg));//mybatisplus提供依靠实体查询的方法的写法
//也可以
mapper.selectList(new EntityWrapper<Egg >(egg));
</div>

分页查询demo:

dao:返回list

List<Role> getPage(Pagination page, RoleParam param) throws DataAccessException;
</div>

xml:照着普通sql写就可以了,其他的会自动拼接

<select id="getPage" resultMap="RoleResultMap">
  select 
  <include refid="columns"/> 
  from ella_role 
  <include refid="where"/>
 </select>

</div>

service:

public Page<EllaRole> getPage(RoleParam param) {
//new 一个page 初始化传入current当前页,size每页几个,order 排序(默认asc要改的话page.setAsc(false);)
    Page<Role> page = new Page<Role>(param.getCurrent(), param.getSize(), param.getOrder());
    page.setRecords(iRoleMapper.getPage(page, param));
    return page;
  }
</div>

end

接下来是一些小贴士

生成的实体里主键要加上@TableId注解不然会报错

数据库里有下划线的字段在查询返回是会取不到值,需要在config文件中的mybatisSqlSessionFactoryBean方法下加上

mybatisPlus.setDbColumnUnderline(true); 
</div>

domain里的所有属性都会映射到数据库的字段上,如果你加上数据库里没有但要用的属性需要在上面加上@TableField(exist = false)标签,这样他会被忽略

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 详解Spring boot上配置与使用mybatis plus
  • 详解Spring Boot中Controller用法
  • 详解Spring Boot 定时任务的实现方法
  • 详解在Spring Boot中使用数据库事务
  • spring boot整合CAS配置详解
  • Spring Boot Redis 集成配置详解
  • 详解Spring Boot集成MyBatis(注解方式)
  • Spring Boot的Profile配置详解
  • 详解spring boot配置 ssl
  • spring boot 的常用注解使用小结

相关文章

  • 2017-05-28详谈java线程与线程、进程与进程间通信
  • 2017-05-28Java中ArrayList类详细介绍
  • 2017-05-28Java定时器问题实例解析
  • 2017-05-28java 中数据库连接的JDBC和驱动程序的深入分析
  • 2017-05-28Java Scaner类详解_动力节点Java学院整理
  • 2017-05-28java 基础之final、finally和finalize的区别
  • 2017-05-28Java缓存池代码实例详解
  • 2017-05-28Java String类详解_动力节点Java学院整理
  • 2017-05-28关于Spring3 + Mybatis3整合时多数据源动态切换的问题
  • 2017-05-28Java通过关闭Socket终止线程

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • SWT(JFace)体验之FillLayout布局
    • 零基础入门学习——Spring Boot注解(一)
    • java利用delayedQueue实现本地的延迟队列
    • Java中SimpleDateFormat用法详解
    • spring boot下 500 404 错误页面处理的方法
    • java实现将汉语转换为拼音功能
    • Java中初始化块详解及实例代码
    • SpringMVC互联网软件架构REST使用详解
    • 使用ftpClient下载ftp上所有文件解析
    • Spring Boot如何使用Spring Security进行安全控制

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有