个人做论坛网站要什么证件,sharepoint做门户网站,网站迁移后 域名,莱芜吧百度吧文章目录 1. 核心功能1.1 配置与编写规则1.2 条件构造器1.3 自定义SQL1.4 IService接口1.4.1 Lambda方法1.4.2 批量新增 1.5 分页查询 2. 拓展功能2.1 代码生成器2.2 DB静态工具2.3 逻辑删除2.4 枚举处理器 参考 1. 核心功能
1.1 配置与编写规则
Maven依赖#xff1a;
… 文章目录 1. 核心功能1.1 配置与编写规则1.2 条件构造器1.3 自定义SQL1.4 IService接口1.4.1 Lambda方法1.4.2 批量新增 1.5 分页查询 2. 拓展功能2.1 代码生成器2.2 DB静态工具2.3 逻辑删除2.4 枚举处理器 参考 1. 核心功能
1.1 配置与编写规则
Maven依赖
dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.5.3.1/version
/dependency Mapper类
public interface UserMapper extends BaseMapperUser {
}实体类命名规则 YAML文件配置
mybatis-plus:type-aliases-package: com.itheima.mp.domain.pomapper-locations: classpath*:/mapper/**/*,xmlconfiguration:map-underscore-to-camel-case: truecache-enabled: falseglobal-config:db-config:id-type: assign_idupdate-strategy: not_nullMyBatis-Plus中比较常用的几个注解如下: TableName: 指定表名使用场景类名与数据库不符。 TableId: 指定主键字段信息使用场景绑定主键。 TableField: 指定普通字段信息使用场景字段名不符、变量名是布尔值、字段与数据库关键字冲突。
1.2 条件构造器
实现类里面会用到的
个人理解尽量用query。Lambda表达式User::getId类似这种不写死代码。
1.3 自定义SQL
使用场景 update、select需要构建where前面的SQL语句。
int amount 200;
QueryWrapperUser wrapper new QueryWrapperUser().in(User::getId, ids);
userMapper.updateBalanceByIds(wrapper, amount);第一个wrapper参数一定要加**Param(“ew”)且名字为“ew”**。
void updateBalanceByIds(Param(ew) Lambda......, Param(xx) ....)updateupdate user SET balance balance - #{amount} ${ew.customSqlSegment}
/update1.4 IService接口
实现原理图
接口实现层
public class UserServiceImpl extends IServiceImplUserMapper, User implements IUserService {
} 接口抽象层
public interface IUserService extends IServiceUser {
}1.4.1 Lambda方法
return lambdaQuery().like(condition, User::getId, id).eq(xxx).list();
return lambdaQuery().set(xxx).eq(xxx).update();1.4.2 批量新增
采取批量插入方式 ps打开SQL的配置开启rewriteBatchedStatementstrue参数。
public void saveBatch() {ListUser list new ArrayList(1000);for (int i 0; i 100000; i) {list.add(buildUser(i));if (i % 1000 0) {userService.saveBatch(list);list.clear();}}
} 1.5 分页查询
先进行分页查询配置
Configuration
public class MybatisPlusConfig {Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor());return interceptor;}
}然后利用Page分页操作
public ResultPageArticle list(Integer pageNum, Integer pageSize, RequestParam(required false) String categoryId, RequestParam(required false) String state) {PageArticle page new Page(pageNum, pageSize);return Result.success(articleService.page(page));
}2. 拓展功能
2.1 代码生成器
Java代码生成 看文件夹代码。
MybatisX 选中数据库表右键选中。
MybatisPlus: 点击上方导航栏other配置数据库然后点击生成键配置后生成。
2.2 DB静态工具 这样就不用注入AddressService了。
2.3 逻辑删除
理解在数据库中加入delete字段01从逻辑上判断数据是否被删除。
2.4 枚举处理器
用途 处理Java枚举类与数据库中字段类型不同的问题。 参考
黑马程序员视频