4.Mybatis-plus
官網(wǎng) : https://www.baomidou.com/
MyBatis-Plus 是一個(gè) MyBatis 的增強(qiáng)工具,在 MyBatis 的基礎(chǔ)上封裝了大量常規(guī)操作,減少了SQL的編寫(xiě)量。
4.1.Maven依賴(lài)
使用時(shí)通常通過(guò)Springboot框架整合使用
并且使用Lombok框架簡(jiǎn)化實(shí)體類(lèi)
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
重點(diǎn)注意 :
- 與 SpringBoot整合時(shí), 在啟動(dòng)類(lèi)增加注解 @MapperScan("mapper接口路徑 ") 或者 在每一個(gè)Mapper類(lèi)上加 @Mapper注解
這樣做的目的是為Spring框架能夠掃描到這些Mapper接口, 并進(jìn)行依賴(lài)注入到Service類(lèi)
- Mybatis-Plus 在處理連表查詢(xún)操作時(shí), 還是要編寫(xiě)SQL語(yǔ)句進(jìn)行連表的
但是結(jié)果集封裝不再需要 resultMap 結(jié)點(diǎn), 可以直接通過(guò) resultType屬性指向?qū)嶓w類(lèi)
因?yàn)樵趯?shí)體類(lèi)中通過(guò) 注解已經(jīng)指明 屬性與字段的對(duì)應(yīng)關(guān)系
4.2.Service層
4.2.1.結(jié)構(gòu)
4.2.2.代碼
Mybatis-Plus 提供了 IService 接口 及 ServiceImpl實(shí)現(xiàn)類(lèi), 并封裝大量操作方法
接口 :
// 接口
import com.yuan.mybatisplus.entity.Teacher;
import com.baomidou.mybatisplus.extension.service.IService;
public interface TeacherService extends IService<Teacher> {
}
實(shí)現(xiàn)類(lèi) :
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuan.mybatisplus.entity.Teacher;
import com.yuan.mybatisplus.mapper.TeacherMapper;
import com.yuan.mybatisplus.service.TeacherService;
public class TeacherServiceImpl extends ServiceImpl<TeacherMapper, Teacher>
implements TeacherService{
}
4.2.3.常用方法
.list(); //查詢(xún)
.list(Wrapper<T>); //條件查詢(xún)
.getById(Serializable); // 根據(jù)主鍵查詢(xún)
.save(T); //插入數(shù)據(jù)
.updateById(T); //以 主鍵匹配 修改數(shù)據(jù)
.removeById(Serializable); // 根據(jù) 主鍵 刪除
.removeByIds(Collection<? extends Serializable> ); // 根據(jù)主鍵集合 刪除多條記錄
4.3.Mapper層
4.3.1.結(jié)構(gòu)
可以看到 BaseMapper定義了基本操作方法
4.3.2.代碼
import com.yuan.mybatisplus.entity.Teacher;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface TeacherMapper extends BaseMapper<Teacher> {
}
4.4.Entity 實(shí)體類(lèi)
在實(shí)體類(lèi)中通過(guò)注解說(shuō)明與數(shù)據(jù)庫(kù)表的對(duì)應(yīng)關(guān)系
@TableName(value ="表名")
// 這個(gè)不是必需的
@Data
// lombok的注解, 封裝了Setter/Getter/ toString()/ 無(wú)參構(gòu)造/ 有參構(gòu)造 等基本方法, 使代碼更簡(jiǎn)潔
@TableId(type = IdType.AUTO)
// 指明主鍵,
? type = IdType.AUTO
用于說(shuō)明 主鍵自增長(zhǎng) , 也可以
@TableField(exist = false)
// 指明當(dāng)前屬性沒(méi)有對(duì)應(yīng)的字段
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 教師 teacher
* @TableName teacher
*/
@TableName(value ="teacher")
@Data
public class Teacher implements Serializable {
/**
* 講師主鍵
*/
@TableId(type = IdType.AUTO)
private Integer tchId;
/**
* 講師姓名
*/
private String tchName;
/**
* 講師介紹
*/
private String tchInfo;
/**
* 講師性別
*/
private Boolean tchSex;
/**
* 講師注冊(cè)時(shí)間
*/
private Date tchRegTime;
/**
* 講師頭像
*/
private String tchPic;
/**
* 登錄賬號(hào)
*/
private String tchUser;
/**
* 登錄密碼
*/
private String tchPass;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
打印 執(zhí)行的SQL文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-430185.html
在配置文件 application.properties 中增加文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-430185.html
# 在控制臺(tái)輸出執(zhí)行的SQL語(yǔ)句 mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
到了這里,關(guān)于Mybatis 框架 ( 三 ) Mybatis-Plus的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!