Mybatis01--前言


学习路线:
Mybatis–>Spring–>Spring MVC–>Spring Boot
这条线是跟着B站狂神学的,这几篇文章也就是学习笔记,有一些细小的改动

狂神博客

这篇是学习框架之前的一些概念补强~

首先我们要知道反射是一种机制,映射是一种关系。

一.反射

反射是在运行状态中任何一个类,我们都能知道这个类的属性和方法,对于任何一个对象都能调用这个对象的任意属性和方法,这种动态的获取信息或者动态调用对象的方法称为Java的反射机制。

那么反射能做什么

1.运行时调用任意一个对象的方法

2.运行时判断任意一个对象所属的类

3.运行时构造任意一个类的对象

4.运行时判断任意一个类的所具有的成员变量和方法

5.生成动态代理

二.映射

映射是一种特殊的对应关系

正常一点的理解就是:

映射就是把两个对象对应起来。

对应的对象叫做象,被对应的对象叫做原象。

Java中有非常好的例子。实现了Map接口的HashMap和TreeMap。前面已经提到过Map类是实现键值对的双向链表,这里就是完成了key和value的映射,当然key要是唯一的才可以。

三、三层架构

三层架构包含的三层:

1.界面层:表示层,视图层,接受用户提交的数据,显示请求的处理结果,跟用户打交道。
2.业务逻辑层:接收界面层传递的数据,计算逻辑,调用数据库获取数据。
3.数据访问层:持久层,增删改查数据库。

三层对应的包:

界面层:controller  (servlet)
业务逻辑层:service包 (service类)
​数据访问层:dao包
三层中类的交互:
​用户使用界面层-->业务逻辑层-->数据访问层(持久层)-->数据库

三层对应的处理框架:

界面层-->spring MVC(框架)
业务逻辑层-->service类-->spring(框架)
数据访问层-->dao类-->mybatis框架

四、框架

框架是一个模板

​框架中定义好了一些功能。

​加入自己的功能,这些功能可以利用框架中写好的功能,不用重新写了。简化开发。

五、maven

配好maven仓库

六、源码

gitee:地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一篇简单的 Mybatis-Plus 技术博客,仅供参考。 Mybatis-Plus 技术博客 前言 Mybatis-Plus 是一个基于 Mybatis 的增强工具,简化了 Mybatis 的使用,提供了许多实用的功能,如自动生成代码、分页、多租户、乐观锁等,并且完全兼容 Mybatis。 本文将介绍 Mybatis-Plus 的基本使用和一些高级功能,希望对使用 Mybatis-Plus 的开发者有所帮助。 正文 一、基本使用 1.引入依赖 在 pom.xml 文件中引入 Mybatis-Plus 的依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3.1</version> </dependency> ``` 2.配置数据源 在 application.yml 文件中配置数据源信息: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false username: root password: root driver-class-name: com.mysql.jdbc.Driver ``` 3.配置 Mybatis-Plus 在 Mybatis 的配置文件中使用 Mybatis-Plus 的插件: ```xml <configuration> <plugins> <!-- Mybatis-Plus 插件 --> <plugin interceptor="com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor"/> </plugins> </configuration> ``` 4.创建实体类 创建一个 User 实体类,使用注解标注数据库表名和字段名: ```java @Data @TableName("user") public class User { @TableId(type = IdType.AUTO) private Long id; private String name; private Integer age; private String email; } ``` 5.创建 Mapper 创建一个 UserMapper 接口,继承 Mybatis-Plus 的 BaseMapper 接口: ```java public interface UserMapper extends BaseMapper<User> { } ``` 6.使用 Mapper 在 Service 中使用 UserMapper 的方法: ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public User getById(Long id) { return userMapper.selectById(id); } @Override public List<User> list() { return userMapper.selectList(null); } @Override public boolean save(User user) { return userMapper.insert(user) > 0; } @Override public boolean update(User user) { return userMapper.updateById(user) > 0; } @Override public boolean delete(Long id) { return userMapper.deleteById(id) > 0; } } ``` 二、高级功能 1.分页查询 使用 Mybatis-Plus 的 Page 类进行分页查询: ```java @Override public IPage<User> page(Integer pageNum, Integer pageSize) { Page<User> page = new Page<>(pageNum, pageSize); QueryWrapper<User> queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().gt(User::getAge, 18); return userMapper.selectPage(page, queryWrapper); } ``` 2.多租户 使用 Mybatis-Plus 的 MultiTenantType 接口和 MultiTenantLineHandler 类实现多租户: ```java public class MybatisPlusTenantLineHandler implements TenantLineHandler { @Override public Expression getTenantId() { // 返回当前租户 ID return new LongValue(1L); } @Override public String getTenantIdColumn() { // 返回租户 ID 的字段名 return "tenant_id"; } @Override public boolean ignoreTable(String tableName) { // 返回是否忽略该表 return "user".equalsIgnoreCase(tableName); } } @Configuration public class MybatisPlusConfig { @Bean public TenantLineInnerInterceptor tenantLineInnerInterceptor() { return new TenantLineInnerInterceptor(new MybatisPlusTenantLineHandler()); } @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(tenantLineInnerInterceptor()); return interceptor; } } ``` 3.乐观锁 使用 Mybatis-Plus 的 @Version 注解实现乐观锁: ```java @Data @TableName("user") public class User { @TableId(type = IdType.AUTO) private Long id; private String name; private Integer age; private String email; @Version private Integer version; } @Override public boolean update(User user) { return userMapper.updateById(user) > 0; } ``` 结论 Mybatis-Plus 是一个非常实用的工具,可以显著提高开发效率和代码质量。本文介绍了 Mybatis-Plus 的基本使用和一些高级功能,希望对大家有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值