使用说明:
相对来说使用比较方便,特性官方文档说的很详细了。基本的使用与mybatis没有任何差别。
集成到springboot的传送门 → http://mp.baomidou.com/#/spring-boot
常见问题:
1、使用MP只需要引入MP的依赖,不需要另外引入mybatis依赖。
2、空指针问题
新建项目使用ActiveRecord 方式CURD时出现下面报错
java.lang.NullPointerException
at com.baomidou.mybatisplus.entity.GlobalConfiguration.currentSessionFactory(GlobalConfiguration.java:227)
at com.baomidou.mybatisplus.mapper.SqlHelper.sqlSession(SqlHelper.java:101)
at com.baomidou.mybatisplus.mapper.SqlHelper.sqlSession(SqlHelper.java:54)
at com.baomidou.mybatisplus.activerecord.Model.sqlSession(Model.java:346)
at com.baomidou.mybatisplus.activerecord.Model.insert(Model.java:53)
...
解决方法:
新项目实体(model)直接maven引用的其他项目,并且对mybatisplus进行了配置。官方文档中描述:“AR模式提供了一种更加便捷的方式实现 CRUD 操作,其本质还是调用的 Mybatis 对应的方法,类似于语法糖。”所以需要补充mapper继承basemapper。
https://gitee.com/baomidou/mybatisplus-spring-mvc/issues/2
3、使用mybatis在xml中写sql,如下:
state为1时,发现执行后的age条件还是加上了
修改为下面情况正常:
4、连接mysql8.0时driver报错,Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class is
com.mysql.cj.jdb
修改连接数据库配置
spring:
datasource:
url: jdbc:mysql://localhost:3306/xxx?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=GMT
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: ******
5、Caused by: java.lang.ClassNotFoundException: org.apache.commons.pool2.impl.G…
引入依赖:
org.apache.commons
commons-pool2
2.0
6、org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping:
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='ew.paramNameValuePairs.MPGENVAL4', mode=IN, javaType=class java.lang.Object, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #4 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 无效的列类型: 1111
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:77)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)
at com.sun.proxy.$Proxy139.selectOne(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:166)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:82)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)
at com.sun.proxy.$Proxy154.selectCount(Unknown Source)