MybatisPlus的全局策略配置

  • 注意:我们写的配置还要加到 MybatisSqlSessionFactoryBean
  • applicationContext.xml
    <!--定义MybatisPlus的全局策略配置--><bean id="globalConfiguration" class="com.baomidou.mybatisplus.entity.GlobalConfiguration">    <!--配置驼峰命到下划线,在MybatisPlus2.3以后,默认为true        这样子就不用为实体类的属性加上@TableField注解了l-->    <property name="dbColumnUnderline" value="true"></property>
    
        <!--这样子就不用为每一个同样前缀的实体类的主键加上@TableId注解了        全局的主键策略:            AUTO(0, "数据库ID自增"),            INPUT(1, "用户输入ID"),            ID_WORKER(2, "全局唯一ID"),            UUID(3, "全局唯一ID"),            NONE(4, "该类型为未设置主键类型"),            ID_WORKER_STR(5, "字符串全局唯一ID");    -->    <property name="idType" value="0"></property>
    
        <!--全局的表前缀策略:这样子就不用为每一个同样前缀的实体类加上@TableName注解了-->    <property name="tablePrefix" value="tab_"></property></bean>

MybatisPlus下实体类中的属性加上@TableField(exist = false)

意思是:操作数据库时,不对该属性进行操作

报错:Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'mp.employee' doesn't exist

  1. 原因:MybatisPlus默认使用实体类名到数据库找相对应的表

    public class Employee
  2. 傻瓜式解决办法:修改实体类名与数据库表名一致
  3. 使用注解(value默认为类名)
    @TableName(value = "tbl_employee")
    public class Employee

报错:Caused by: java.lang.IllegalArgumentException: argument type mismatch

  1. 原因:实体类中没有用注解声明数据库表的主键id

    private Integer id; 
  2. 解决办法:
    @TableId
    private Integer id;  //主键必须加上TableId注解来让mybatisPlus识别,否则会报错
  3. 拓展(声明id的同时,声明其对应的数据库表里的字段名,如果实体属性名与列名相同时可以省略;以及id自增)
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

MyBatis-Plus学习笔记的更多相关文章

  1. MyBatis:学习笔记(4)——动态SQL

    MyBatis:学习笔记(4)——动态SQL 如果使用JDBC或者其他框架,很多时候需要你根据需求手动拼装SQL语句,这是一件非常麻烦的事情.MyBatis提供了对SQL语句动态的组装能力,而且他只有 ...

  2. mybatis的学习笔记

    前几天学习了mybatis,今天来复习一下它的内容. mybatis是一个基于Java的持久层框架,那就涉及到数据库的操作.首先来提出第一个问题:java有jdbc连接数据库,我们为什么还要使用框架呢 ...

  3. 关于mybatis的学习笔记

    配置文件 贴出mybatis的配置文件,这里mybatis还未与spring做整合: <?xml version="1.0" encoding="UTF-8&quo ...

  4. MyBatis 3学习笔记

    MyBatis 3 一.MyBatis简介 优秀的持久层框架,支持支持自定义 SQL.存储过程以及高级映射,专注于SQL的编写. ​ 为什么不使用工具类进行数据库操作: ​ 功能简单,sql语句编写在 ...

  5. mybatis缓存学习笔记

    mybatis有两级缓存机制,一级缓存默认开启,可以在手动关闭:二级缓存默认关闭,可以手动开启.一级缓存为线程内缓存,二级缓存为线程间缓存. 一提缓存,必是查询.缓存的作用就是查询快.写操作只能使得缓 ...

  6. 3、MyBatis.Net学习笔记之增删改

    增删改之前先说一下笔记1里提到的一个无法创建ISqlMapper对象的问题. <resultMaps> <resultMap id="FullResultMap" ...

  7. MyBatis基础学习笔记--摘录

    1.MyBatis是什么? MyBatis源自于IBatis,是一个持久层框架,封装了jdbc操作数据库的过程,使得开发者只用关心sql语句,无需关心驱动加载.连接,创建statement,手动设置参 ...

  8. MyBatis基础学习笔记--自总结

    一.MyBatis和jdbc的区别 jdbc的过程包括: 1.加载数据库驱动. 2.建立数据库连接. 3.编写sql语句. 4.获取Statement:(Statement.PrepareStatem ...

  9. Mybatis进阶学习笔记——动态代理方式开发Dao接口、Dao层(推荐第二种)

    1.原始方法开发Dao Dao接口 package cn.sm1234.dao; import java.util.List; import cn.sm1234.domain.Customer; pu ...

  10. MyBatis入门学习笔记(一)

    一.什么是MyBatis? Mybatis是一种“半自动化”的ORM实现,支持定制化 SQL.存储过程以及高级映射. 二.hibernate和mybatis对比 共同:采用ORM思想解决了实体和数据库 ...

随机推荐

  1. git学习手记(也许仅对本人有用)

    首先明白git的三种状态 commited已提交 =====>git仓库(存着各种版本)modified已修改(此时就是我们的编辑器中的未保存状态)====>工作目录staged暂存状态= ...

  2. java利用反射交换两个对象中的字段相同的字段值

    有时候我们的两个对象字段都是一样的,只有极少的区别,想要把一个对象字段的值,赋值给另外一个对象值 然后传给另外一个方法使用,但是这个字段太多,一个一个的复制太过繁琐. 这时候利用反射解决这个问题. c ...

  3. 著名java博客

    http://blog.csdn.net/net19880504/article/details/20807403

  4. windows 杀死进程

    查看所有进程: tasklist 查看某一个进程: tasklist | findstr python 杀死进程:taskkill /F /PID python.exe 查看端口占用情况:netsta ...

  5. Git命令行入门

    安装 下载与文档地址:https://git-scm.com/book/zh/v2 我使用的是linux系统,故使用命令行安装Git # apt-get install git 配置 # git co ...

  6. Oracle数据库中OVER()函数的了解

    1.over函数介绍:      开窗函数,Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对于每个组返回多行,而聚合函数对于每个组只返回一行. ...

  7. VS编写一个项目的路径规划

    原文路径:http://blog.csdn.net/puttytree/article/details/7838419 https://www.cnblogs.com/zhehan54/p/45678 ...

  8. easyUI 学习

    )省份-城市-区域三级联动[struts2 + ajax +非数据库版] (1)省份-城市-区域,基于jQuery的AJAX三级联动,用Struts2整合AJAX[非数据库版] $.ajax( { t ...

  9. C语言--第01次作业

    分支.顺序结构 1.本章学习总结 1.1思维导图 1.2 本章学习体会及代码量学习体会 1.2.1 学习体会 本周学习了分支.顺序结构,学到的大部分都在思维导图介绍了,不懂的地方例如有switch的运 ...

  10. laravel5.6中jquery+ajax分页

    public function shows(Request $request){ $p=$request->get("page"); $page=empty($p)?:$p; ...