mybatisplus的总结
一.通用Mapper
1.首先创建一个接口与实体类
@Data
@TableName("user")
public class User {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@TableField("name")
private String name;
@TableField("age")
private Integer age;
@TableField("email")
private String email;
}
下面是接口需要继承BaseMapper<User>
@Mapper//也可以在启动类中通过@MapperScan进行扫描
public interface UserMapper extends BaseMapper<User> {
}
2.对数据库进行操作
@Autowired
private UserMapper userMapper;
通过UserMapper对象调用各种方法
第一种是调用Mybatis-plus自动创建的方法
第二种是通过xml文件创建自定义的sql语句
二.通用Service
1.创建Service接口
继承IService<User>,User是对应数据库的表名
public interface UserService extends IService<User> {
}
2.创建Service实现类
继承ServiceImpl<UserMapper,User>,第一个是User对应的mapper,第二 个是对应表名的实体类s
实现对应的service接口 UserService
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}
3.通过接口实例调用mybatisplus提供的方法
@Autowired
private UserService userService;
在yml中的相关配置
192.168.87.101:3306是主机的域名
lease是数据库名
username是数据库名字
password是数据库密码
最后别忘记springboot与mybatisplus不兼容问题
以及lombok的@Data不起作用的问题
总结;如果是自己手写sql则是通过通用Mapper实现
三.条件构造器
1.QueryWrapper<表名> UpdateWrapper<表名>
例如:QueryWrapper<User>
QueryWrapper<User> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("name", "Tom");
eq代表相等的条件,
第一个参数代表表中的字段,第二个代表该字段要等于的值
还有很多方法就不一一描述了
2.LambadaQueryWrapper<表名>
其实跟上面的条件构造器一样,只不过获取字段是根据实体类的属性获取
//查询name=Tom的所有用户tt
LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(User::getName, "Tom");
然后将构造器放在查询语句的括号内作为条件进行查询
List<User> list = userService.list(lambdaQueryWrapper);
四.分页插件
需要增加一个配置类,否则无法使用
@Configuration
public class MPConfiguration {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
注意;如果不写该配置,那么就无法实现分页查询逻辑
curren 当前页
size 每页的数据条数
total查询数据列表的总记录数
@Autowired
private FeeKeyMapper feekeyMapper;//
IPage<FeeKey> page = new Page<FeeKey>(2, 2);//创建分页查询对象,第一个参数是current,第二个是size IPage<FeeKey> feeKeyIPage = feekeyMapper.selectPage(page, null);// feeKeyIPage.getRecords().forEach(System.out::println);//打印出查询的对象
五.MyBatis插件,用于快速生成Entity
、Mapper
、Mapper.xml
、Service
、ServiceImpl
等代码,使用户更专注于业务。
1.安装插件
2.配置数据库连接
3.生成代码
4.配置包名类名等
注意;建议自己搜B站的相关教程,这里并不全面
六.对象存储服务*minio(免费)-可以使用阿里云的oss代替
总结;该项目主要是让我通过定义好的接口书写sql,技术不难,比较繁琐,redis几乎没有用到,用的最多的是mp,SpringMVC等,后面的nginx也没看