mybatis-plus 使用,mybatis-plus教程

  mybatis-plus 使用,mybatis-plus教程

  00-1010介绍优点,我的感受,遇到的问题,返回的列表只包含没有大写属性的数据库字段。setDbColumnUnderline导致的不一致字段的摘要

  00-1010 MyBatis-Plus是国内大牛基于Mybatis3做的一个包,简化了一些操作(分页,实体块自动生成等。).就是快速开发一个好的工具插件。

  Mybatis增强工具包——无需更改即可进行增强,以简化CRUD操作。

  00-1010纯血统:完全继承原生Mybatis的所有特性,依赖性最小:只依赖Mybatis和Mybatis-Spring,性能损失很小:启动时会自动注入基本的凝乳,没有性能损失,直接面向对象的操作会自动热加载:Mapper对应的xml可以热加载,大大减少了重新启动Web服务器的时间。提高开发效率,自动生成代码:包括自动生成的代码类和Maven插件。只需要少量的配置,就可以快速生成Mybatis对应的xml、mapper、entity、service和serviceimpl层代码,减少开发时间。自定义操作:支持自定义Sql注入,实现个性化操作的自定义转义规则:支持数据库关键字的自动转义(如:order、key等。),支持自定义关键字的多主键策略:最多支持四个主键策略,可以自由配置,如果没有则自动填充。还有充满黑科技的分布式全局唯一ID生成器无缝分页插件:基于Mybatis物理分页,无需关心具体操作。相当于编写基本的selectList查询性能分析:自带Sql性能分析插件,可以有效解决开发测试时对慢速查询的全局拦截;提供全表删除和更新操作的智能分析,阻断和避免Sql注入;它内置了Sql注入内容剥离器来防止Sql注入攻击。

  00-1010我们的项目是spring-boot mybatis-plus,官方有一个这样的演示。它在构建一些比较例程上还是比较省时间的,它自动生成代码的插件可以生成entity.mapper,entity.mapper,entityvo.java,一系列Spring mvc文件架构,比如EntityBusiness Controller。Java,EntityService。Java,IENTITY Mapper。Java,大大节省了开发时间。但就JDBCUtil而言,还是比较单薄的,只提供基本的增删改。可能没有自己写的工具类好用,但是这些可以根据你自己的习惯和数据结构封装。另外,它是作者定义的一套规则。我们需要注意,否则可能会在开发过程中花费额外的时间来发现bug。

  

目录

  00-1010通常生成的mapper.xml如下:

  骑乘作物xml版本=1.0 编码=UTF-8 ?DOCTYPE Mapper PUBLIC -//mybatis . org//DTD Mapper 3.0//EN http://mybatis . org/DTD/mybatis-3-Mapper . DTD Mapper namespace= com . test . domain . po . ifundaccountmapper !-常规查询结果列-result Map id= testentitymap type= com . test . domain . po . fund account id column= id property= id /result column= user _ id property= userId /result column= real name property= real name /Map select id= selectObjPage result type= testentity select * from fund _ account/select/mapper我们发现,当我们调用。控制层中的selectobjpage方法,只有ID和realname有关于返回值的信息。我们找到了返回值的原因。我们在实体类中做数据绑定Entity.java。

  包com . senthink . www . micat . domain . po;导入com . baomi dou . mybatisplus . annotations . id type;import com.baomidou.mybatisplus

  .annotations.TableField;import com.baomidou.mybatisplus.annotations.TableId;import com.baomidou.mybatisplus.annotations.TableName;@TableName("fund_account")public class TestEntity { @TableId(type = IdType.AUTO) private Integer id; @TableField(value = "user_id") private String userId; private String realname; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUserId() { return userId; } public void setUserId(String userId) { this.userId = userId; } public String getRealname() { return realname; } public void setRealname(String realname) { this.realname = realname; }}而实体的数据绑定是通过mapper.xml中<resultMap id="TestEntityMap" type="com.test.domain.po.FundAccount">来完成连接的。所以,当你想返回TestEntity实体类型的时候必须要返回的是这个定义的resultMap,即把<select id="selectObjPage" resultType="TestEntity">修改为<select id="selectObjPage" resultMap="TestEntityMap">即可。

  

  

setDbColumnUnderline导致的字段不一致

mybatis-plus的setDbColumnUnderline设置使得数据库字段强行按照java实体的骆驼式命名法大写字母前转化为下划线加小写的命名规范。如TestEntity中的userId在拼装sql语句时自动对应为userId,所以这就要求你实体命名和数据库字段名必须满足这个规则,若出现不满足规则的命名,如passwordMD5,将被编译为password_m_d5这样就会报sql错误了。解决办法:

  按照规范命名,对未规范的命名全部修改设置不用其下划线命名法,在MybatisPlusConfig.java中设置

MybatisSqlSessionFactoryBean mybatisPlus = new MybatisSqlSessionFactoryBean();mybatisPlus.setDbColumnUnderline(true);

  

总结

到此这篇关于mybatis-plus插件使用时的一些问题的文章就介绍到这了,更多相关mybatis-plus插件使用问题内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: