前言
如果說ssh比ssm究竟好用在哪裡,快速開發體驗在哪裡的話,那必然就是mybatis了,如果還要找一個比mybatis更優秀的dao層框架,那必然就是他的大哥——mybatis plus。
一、MybatisPuls是什麼?MyBatis-Plus 是一個 Mybatis 增強版工具,在 MyBatis 上擴充了其他功能沒有改變其基本功能,只是為了簡化開發提交效率而存在。
官網文件地址: https://mp.baomidou.com/guide/
MyBatis-Plus 特性: https://mp.baomidou.com/guide/#%E7%89%B9%E6%80%A7
實體類 --> User.java注:建立時間、修改時間、樂觀鎖、邏輯刪除不提倡手動增加或修改@Data@AllArgsConstructor@NoArgsConstructorpublic class User implements Serializable { private Long id; private String name; private Integer age; private String email; /*建立時間*/ @TableField(fill = FieldFill.INSERT) private Date gmtCreate; /*修改時間*/ @TableField(fill = FieldFill.UPDATE) private Date gmtModified; /*樂觀鎖*/ @Version private Integer version; /*邏輯刪除*/ @TableLogic private Integer deleted;}12345678910111213141516171819202122
Mapper --> UserMapper.java
@Repositorypublic interface UserMapper extends BaseMapper<User> {}123
MybatisCaseConfig.java注:元件註冊!OptimisticLockerInterceptor 在mybatispuls3.20之後棄用了@MapperScan("com.hjc.demo.mybatiscase.mapper")@EnableTransactionManagement@Configurationpublic class MybatisCaseConfig { /*OptimisticLockerInterceptor 之前得外掛已被棄用*/ @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); /*樂觀鎖外掛*/ interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); /*分頁外掛*/ interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor; }12345678910111213141516
MybatisCaseHandler.java注:填充策略
@Slf4j@Componentpublic class MybatisCaseHandler implements MetaObjectHandler { /*插入時填充策略*/ @Override public void insertFill(MetaObject metaObject) { log.info("start insertFill succeed"); this.setFieldValByName("gmtCreate",new Date(),metaObject); this.setFieldValByName("gmtModified",new Date(),metaObject); } /*修改時填充策略*/ @Override public void updateFill(MetaObject metaObject) { log.info("start updateFill succeed"); this.setFieldValByName("gmtModified",new Date(),metaObject); }}1234567891011121314151617181920
Test.java --> 簡單CURD測試Test.java --> 多條件測試條件構造器用法較多就不一一示例了 --> { 構造器路徑:https://baomidou.com/guide/wrapper.html#abstractwrapper1
}
總結簡單得案例就基本完成了!如需深入請進入官方文件自行學習!