1、spring集成mp,只需要在Mybatis 自带的MybatisSqlSessionFactoryBean 替换为 MP 自带的即可,
org.mybatis.spring.SqlSessionFactoryBean替换成:com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean
2、Mapper接口开发:基于Mybatis: 在Mapper接口中编写CRUD相关的方法 提供Mapper接口所对应的SQL映射文件 以及 方法对应的SQL语句.
基于MP: 让XxxMapper接口继承 BaseMapper接口即可.BaseMapper<T> : 泛型指定的就是当前Mapper接口所操作的实体类类型
3、mp主键策略:在实体类上面加上@TableId(value="id",type=IdType.AUto),value指定数据库字段,如果实体属性名与列名一致可以不用写,type指定增长策略,如果不是自增这个注解可以不用写。
4、mp会默认使用实体类的类名到数据中找对应的表。如果表明不一致,需要加一个表明注解:@TableName(value=""),
value指定数据库表明。
5、如果数据库里面的某个字段里面有下划线(user_name),实体类是userName,版本2.3之后默认对应起来,也可以用注解
@@TableField(value="")来指定对应关系。如果在实体类里面加了一个字段,但是数据库里面没有这个字段,需要通过
@TableField(exist=false)来指定,这样系统才不会报错。
6、mp的全局配置策略,设置之后对整个项目都会起作用:设置之后注入到mybatis的工厂。
<!-- 定义MybatisPlus的全局策略配置-->
<bean id ="globalConfiguration" class="com.baomidou.mybatisplus.entity.GlobalConfiguration">
<!-- 在2.3版本以后,dbColumnUnderline 默认值就是true 对应5-->
<property name="dbColumnUnderline" value="true"></property>
<!-- 全局的主键策略 0主键自增 1用户输入-->
<property name="idType" value="0"></property>
<!-- 全局的表前缀策略配置 -->
<property name="tablePrefix" value="tb_"></property>
</bean>
6、查询的时候如果实体类的名称和数据库对应不起来,用数据库的字段名。ps user_name userName 用user_name
7、插件的使用:在mybatis的工厂里面添加插件注册,
<!-- 插件注册 -->
<property name="plugins">
<list>
<!-- 注册分页插件 -->
<bean class="com.baomidou.mybatisplus.plugins.PaginationInterceptor"/>
<!-- 注册执行分析插件 查看执行的方法是否违法-->
<!-- <bean class="com.baomidou.mybatisplus.plugins.SqlExplainInterceptor">
<property name="stopProceed" value="true"></property>
</bean> -->
<!-- 注册性能分析插件 事件格式化 最大执行时间-->
<!-- <bean class="com.baomidou.mybatisplus.plugins.PerformanceInterceptor">
<property name="format" value="true"></property>
<property name="maxTime" value="5"></property>
</bean> -->
</list>
分页插件的使用:
Page<User> page = new Page<>(1, 10);
EntityWrapper<User> ew = new EntityWrapper<User>();
ew.orderBy(true, "created", true);
List<User> users = userMapper.selectPage(page,ew);
执行分析插件:上面的插件配置之后删除全部数据,则会抛出一个错误。提示违法操作。
性能分析插件:上面配置之后,执行查询的sql语句,如果执行的时间超出5毫秒则会抛出异常。
mybatis查询之后返回json数据时间格式是时间戳格式:需要在时间的实体类加一个格式化的注解:@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
mybatis-plus学习小结
最新推荐文章于 2023-06-07 09:29:39 发布