登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
安全
›
MyBatis-plus之快速入门
MyBatis-plus之快速入门
[ 复制链接 ]
巫雪艷
10 小时前
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
MyBatis-plus简述
MyBatis-plus是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。
内置代码生成器、内置分页插件、内置性能分析插件、内置全局拦截插件等。。。
快速应用
新建一个空的SpringBoot项目
引入依赖,MyBatis-plus依赖已经包含了MyBatis框架,所以不再引入MyBatis依赖:
这个依赖适配springboot3.x 版本
<dependency>
<groupId>mysql</groupId>
mysql-connector-java</artifactId>
<version>8.0.30</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
druid</artifactId>
<version>1.1.20</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
mybatis-plus-spring-boot3-starter</artifactId>
<version>3.5.15</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
lombok</artifactId>
<version>1.18.42</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
spring-boot-starter-web</artifactId>
</dependency>
复制代码
编写springboot配置文件
spring:
datasource:
username: root
password: root
url: jdbc:mysql://localhost:3306/spring6?useSSL=false&serverTimezone=UTC&characterEncoding=utf8&useUnicode=true
driver-class-name: com.mysql.cj.jdbc.Driver
复制代码
编写Mapper接口
// 继承BaseMapper,BaseMapper内置了丰富的接口方法,这里就不用编写常用的方法了
// 而且这里方法对应的映射文件也不用写了
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
复制代码
编写controller、service、impl、domain 代码:
@RestController
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/selectAll")
public List<User> getUsers() {
return userService.selectList();
}
}
复制代码
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
复制代码
public interface UserService {
List<User> selectList();
}
复制代码
@Service("userService")
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> selectList() {
return userMapper.selectList(null);
}
}
复制代码
此时打开对应的url([localhost:8080/selectAll](http://localhost:8080/selectAll)即可进行测试。
开启日志
在application.yml文件中配置如下:
mybatis-plus:
global-config:
# 去掉mybatis-plus在控制台输出的图标
banner: false
configuration:
# 开启日志
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
复制代码
通用Mapper接口介绍
基础的增删改查
@Autowired
private UserMapper userMapper;
@Test
void contextLoads() {
User user = new User();
user.setAge(13);
user.setId(1L);
user.setName("test");
// 简单新增方法
userMapper.insert(user);
// 简单根据id删除
userMapper.deleteById(2L);
user.setAge(22);
// 简单更新
userMapper.updateById(user);
// 简单查询
User user1 = userMapper.selectById(2L);
}
复制代码
通用Service接口介绍
MyBatis-plus提供了
IService
接口和对应的实现类ServiceImpl。该实现类已经实现了一些对应的service方法,我们可以直接使用它提供的额方法来实现功能,不用亲自编写实现方法。
具体实现关系如下:
修改后的UserService接口如下:
public interface UserService extends IService<User> {
List<User> selectList();
}
复制代码
修改后的UserServiceImpl方法如下:
@Service("userService")
public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> selectList() {
return userMapper.selectList(null);
}
}
复制代码
此时就可以用Service来插入数据等操作:
void testServiceCRUD(){
User user = new User();
user.setAge(13);
user.setId(1L);
user.setName("test");
// 新增
userService.save(user);
// 删除
userService.removeById(2L);
// 更新
user.setId(1L);
user.setName("test2");
userService.updateById(user);
// 查询
List<User> users = userService.selectList();
}
复制代码
自定义Mapper接口方法
自定义的接口方法和实现与mybatis的实现方式一样。
Mapper接口:
@Mapper
public interface UserMapper extends BaseMapper<User> {
User selectByName(String name);
}
复制代码
UserMapper.xml文件:
<mapper namespace="com.ali.mapper.UserMapper">
<select id="selectByName" resultType="com.ali.domain.User">
SELECT * FROM user where name = #{name}
</select>
</mapper>
复制代码
注意:这里的mapper接口和UserMapper.xml文件必须处于同一个目录下。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
MyBatis
plus
快速
入门
相关帖子
MAF快速入门(18)Agent Skill 快速开始
001:简单 RAG 入门
ClawX 消息频道快速部署:飞书、钉钉与主流 IM 一体化接入(3)
003:RAG 入门-LangChain 读取图片数据
MyBatis-配置文件解读及MyBatis为何不用编写Mapper接口的实现类
004:RAG 入门-LangChain读取PDF
OpenClaw 快速上手教程:用手机远程指挥电脑,打造你的 24 小时 AI 管家!
反序列化快速理解
006:RAG 入门-面试官问你,RAG 为什么要切块?
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
MAF快速入门(18)Agent Skill 快速开始
2
386
戈森莉
2026-03-02
业界
001:简单 RAG 入门
0
864
汤昕昕
2026-03-04
业界
ClawX 消息频道快速部署:飞书、钉钉与主流 IM 一体化接入(3)
0
894
缍米
2026-03-05
安全
003:RAG 入门-LangChain 读取图片数据
1
551
诸婉丽
2026-03-05
业界
MyBatis-配置文件解读及MyBatis为何不用编写Mapper接口的实现类
1
706
椎蕊
2026-03-05
业界
004:RAG 入门-LangChain读取PDF
2
833
嫁蝇
2026-03-06
业界
OpenClaw 快速上手教程:用手机远程指挥电脑,打造你的 24 小时 AI 管家!
0
237
渭茱瀑
2026-03-07
业界
反序列化快速理解
0
930
堵赫然
2026-03-08
业界
006:RAG 入门-面试官问你,RAG 为什么要切块?
0
69
梦霉
2026-03-10
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
业界
签约作者
程序园优秀签约作者
发帖
巫雪艷
10 小时前
关注
0
粉丝关注
17
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991125
anyue1937
9994892
kk14977
6845359
4
xiangqian
638210
5
韶又彤
9912
6
宋子
9880
7
闰咄阅
9993
8
刎唇
9995
9
蓬森莉
9869
10
遗憩
10006
查看更多
今日好文热榜
902
AI时代,程序员都应该是需求描述工程师
230
openclaw平替之nanobot源码解析(二):age
825
当纺织机轰鸣而来——一个数字时代“纺织女
478
空论与时论
214
搭建数据库服务高可用架构
284
2026卫生高级职称备考:卫生高级职称考试历
28
公司新招了个 5 年 Java,开工第一天就被劝
332
opencalw平替之nanobot 源码解析(一):环
980
【节点】[SceneDepth节点]原理解析与实际应
419
【节点】[SceneDepth节点]原理解析与实际应
757
"给我发个200元红包":一条群消息背后的 AI
477
使用 C++ 模拟 ShaderLanguage 的 swizzle
67
006:RAG 入门-面试官问你,RAG 为什么要切
290
Stanford-CS336-Lecture-02 Pytorch
325
【FAQ】HarmonyOS SDK 闭源开放能力 —Push
884
openclaw本地部署接入飞书教程(最细保姆版
452
文本生成任务评估指标
162
基于碳陶材质的制动系统升级方案:F80/F82
370
windows系统本地安装部署openclaw详细版教
950
一小时手搓轻量级可代替 Qdrant 的向量数据