# myabtis+mybatisplus

增强 mybatis 但是不做改变
属于 ORM 框架
1.jar
2. 数据表
3.Mybatis 的配置文件
4.log4J 的日志信息
5. 数据库的连接信息
6.Spring 配置文件

其中的 mybatis-plus 里面包含三个 jar :mybatis mybatis-spring mybatis-plus

# 切换到 Mbatis-Plus

<bean id="sqlSessionFactoryBean" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">

CRUD操作
Mybatis-Plus:只需要写接口不需要写*.xml文件,需要继承继承一个BaseMapper<Student>可以指定一id个泛型

MybatisPlus 帮你把基本的 SqL 语句写好了

@TableName (“表名”)
@TableId (value=“字段名”,type=IdTYPE.AUTO)// 主键自增,还需要指定数据库里面的自增
@TableField()指定其他字段 命名规则:stuName->stu_name
注意:
tuo’luo’feng
属性 stuName - 自动转成 stu_name 需要配置一下

<settings>
    <setting namm="mapUnderscoreTocameCase" value="false">
    <setting name="logIml" value="LOG4J">
</settings>

或者是把表里面改成 stu_name 在实体类里面在属性上加入注解 @TableField(value=“stu_name”)

# MP 里面的 where 语句用 Warpper 实现

预加载:MP 启动时,会预加载常见的 CRUD 语句,并将这些语句封装到 MapperStatement 对象中

# AR activeRecoder 形式:通过实体类来实现 CRUD 不需要 Mapper 对象

需要在实体类中 继承 Model
加载 IOC 容器

Student student = new Student(‘qwe’,22);
srudent.inster();

MP 将主键设置为了 Serializable 序列化类型,目的:; 可以接受常见的类型:8 基本类型 + String

面向对象的 SQL 语句:
wrpper.lanbda().like(Student::getName,“a”);
面向 SQL 的查询语句:
wrapper.like(“stu_name”,“a”);

# MP 逆向工程

1. 依赖
2. 写一个类生成代码

lombok:1. 依赖
2. 配置 idea 下载一个插件

# 乐观锁:cvs 算法 悲观锁:synchorinzed,lock

悲观锁:把公共需要的值锁住,等待释放后在查询,把并发变成串行 (严重影响效率,不建议使用)
乐观锁:在每次使用之 进行 version 检测 没修改一次 version 会 + 1

# SQL 注入器

通过自己编写的 sql 语句放入到 MP 的 BaseMapper 类中预加载
自定义方法:
1. 写自己的 sql 语句 + 标签名 MyDelete extends AbstractMethod
2. 自定义注入器:包含原来的 + 自定义的
3. 配置 告知 MP ,以后使用自定义的注入器

# 逻辑删除

@TableLohic
写一个字段
目的:为了数据安全,假删除只是对数据进行修改操作 0->1,真删除是真正的删除操作

阅读次数

请我喝[咖啡]~( ̄▽ ̄)~*

Zhouy 支付宝

支付宝

Zhouy 宝贝不是paypal

宝贝不是paypal

Zhouy 微信支付

微信支付