详解Spring boot上配置与使用mybatis plus
程序员文章站
2024-02-21 21:31:37
这个是mybatisplus的官方文档,上面是mybtisplus的配置使用方法,以及一些功能的介绍
下面开始配置
maven依赖
<...
这个是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>
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; } }
插件以@bean的形式添加在config文件里例如:
@bean public paginationinterceptor paginationinterceptor() { paginationinterceptor page = new paginationinterceptor(); page.setdialecttype("mysql"); return page; }
这是一个分页插件。
代码生成器参考官方文档,但是他的代码生成器可供修改的地方不多,只能控制一下代码生成路径之类的,*度不高,推荐把mybatisplus 代码生成部分单独抽出来,修改成自己合适的,再打成jar包进行依赖。
springboot properties文件配置
# mybatis_config mybatis.mapper-locations=classpath:com/boot/mapper/xml/*mapper.xml mybatis.typealiasespackage=com.boot.entity
前一个是xml文件的路径
后面一个时别名包路径
在springboot的启动类上加上注解
@mapperscan("com.boot.mapper*") @springbootapplication public class bootapplication {
@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));
分页查询demo:
dao:返回list
复制代码 代码如下:
list<role> getpage(pagination page, roleparam param) throws dataaccessexception;
xml:照着普通sql写就可以了,其他的会自动拼接
<select id="getpage" resultmap="roleresultmap"> select <include refid="columns"/> from ella_role <include refid="where"/> </select>
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; }
end
接下来是一些小贴士
生成的实体里主键要加上@tableid注解不然会报错
数据库里有下划线的字段在查询返回是会取不到值,需要在config文件中的mybatissqlsessionfactorybean方法下加上
mybatisplus.setdbcolumnunderline(true);
domain里的所有属性都会映射到数据库的字段上,如果你加上数据库里没有但要用的属性需要在上面加上@tablefield(exist = false)标签,这样他会被忽略
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: 深入mysql外键关联问题的详解
推荐阅读
-
详解Spring boot上配置与使用mybatis plus
-
Spring Boot Log4j2的配置使用详解
-
详解Spring Boot 使用slf4j+logback记录日志配置
-
详解基于Spring Boot与Spring Data JPA的多数据源配置
-
详解Spring boot使用Redis集群替换mybatis二级缓存
-
详解Spring boot上配置与使用mybatis plus
-
详解Spring Boot Profiles 配置和使用
-
Spring Boot中使用Spring-data-jpa的配置方法详解
-
Spring Boot 与 mybatis配置方法
-
详解Spring Boot 属性配置和使用