首页  

MyBatis VS MyBatisPlus     所属分类 mybatis 浏览量 121
mybatis 是一个持久性框架,简化 jdbc 开发,使用 xml 或 注解 配置映射
MyBatis-Plus (MP)是 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,简化开发 提高效率

mybatis  sql语句存放于 mapper (或Dao) 包下的 xml 配置文件中

@Mapper  
public interface UserMapper {  

    @Select("SELECT * FROM users WHERE id = #{id}")  
    User getUserById(int id);  

    ...
}


@Mapper
@Repository
public interface AccountMapper {
 
	@Select("SELECT money FROM account WHERE user_id = #{userId}")
	Integer getBalance(@Param("userId") String userId);
 
	@Update("UPDATE account SET money = money - #{price},update_time = #{updateTime} WHERE user_id = #{userId} AND money >= ${price}")
	int reduceBalance(@Param("userId") String userId, @Param("price") Integer price,
			@Param("updateTime") Timestamp updateTime);
    ...
}


Mybatis Plus 内置通用 Mapper、通用 Service,不需要 xml ,通过少量配置即可实现单表大部分 CRUD 操作,有强大的条件构造器 内置 Sql 注入剥离器,有效预防Sql注入攻击 简单的增删改查接口可继承通用Mapper ,复杂的增删改查可在接口方法上使用 SQL注解 MyBatis-Plus 中,QueryWrapper 和 LambdaQueryWrapper 都是用于构建查询条件的工具类 QueryWrapper 写法:使用字符串形式构建查询条件,支持链式调用,可以拼接多个查询条件 优点:更灵活,支持复杂查询操作和SQL片段拼接 缺点:类型不安全、可读性较差,容易因拼写错误导致异常,当字段名称发生改变时,需要进行额外的检查和修改 LambdaQueryWrapper 写法:使用Lambda表达式引用实体类的属性,避免硬编码字段名。提高代码的可读性和可维护性。 优点:类型安全、易读性高,可直接使用实体类的属性和方法。 缺点:某些复杂查询可能不支持。 QueryWrapper适用于复杂查询,LambdaQueryWrapper 更适合于简单的查询条件构建 单表增删改查 继承mapper接口,javaBean类中注解表名和主键 public interface CourseMapper extends Mapper< Course> { } //对应数据库表名 @Table(name = "course") public class Course { //课程类 //标识主键 @Id private int cid ; private String cname ; private int tid ; //一个课程对应一个老师 private Teacher teacher ; //一个课程对于一个成绩 private Score score ; //无参方法 //有参方法 //get/set方法 } @TableId(type = IdType.AUTO) // 标识主键Id,设置为自动增长 private Integer cid;
https://baomidou.com/

上一篇     下一篇
hutool-db hsqldb2 例子

hutool-db 使用

grafana alert Group wait Group interval Repeat interval

dolphinscheduler 3.2.1

grafana nodata 不告警设置

中小学学习资源