2024年Mybatis框架技术总结(二),阿里P8Java架构师谈

面试准备+复习分享:

为了应付面试也刷了很多的面试题与资料,现在就分享给有需要的读者朋友,资料我只截取出来一部分哦

秋招|美团java一面二面HR面面经,分享攒攒人品

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

//第二页:显示3条数据

PageHelper.startPage(3,3);

//6.处理结果

for(Student student:list){

System.out.println(student);

}

}

1.4、分页插件的参数获取


public void selectPaging() throws Exception{

//1.加载核心配置文件

InputStream is = Resources.getResourceAsStream(“MyBatisConfig.xml”);

//2.获取SqlSession工厂对象

SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);

//3.通过工厂对象获取SqlSession对象

SqlSession sqlSession = sqlSessionFactory.openSession(“true”);

//4.获取StudentMapper接口的实现类对象

StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);

//5.调用实现类的方法,接受结果

List list = mapper.selectAll();

//其他分页的数据

PageInfo pageInfo = new PageInfo<>(list);

System.out.println(“总条数:”+pageInfo.getTotal());

System.out.println(“总页数:”+pageInfo.getPages());

System.out.println(“当前页:”+pageInfo.getPageNum());

System.out.println(“每页显示条数:”+pageInfo.getPageSize());

System.out.println(“上一页:”+pageInfo.getPrePage());

System.out.println(“下一页:”+pageInfo.getNextPage());

System.out.println(“是否第一页:”+pageInfo.isIsFirstPage());

System.out.println(“是否最后一页:”+pageInfo.isIsLastPage());

//6.处理结果

for(Student student:list){

System.out.println(student);

}

}

1.5、分页插件小结


分页:可以将很多条结果进行分页显示。

  • 分页插件 jar 包: pagehelper-5.1.10.jar jsqlparser-3.1.jar

  • <plugins>:集成插件标签。

  • 分页助手相关 API

​ 1.PageHelper:分页助手功能类。

  1. startPage():设置分页参数

  2. PageInfo:分页相关参数功能类。

  3. getTotal():获取总条数

  4. getPages():获取总页数

  5. getPageNum():获取当前页

  6. getPageSize():获取每页显示条数

  7. getPrePage():获取上一页

  8. getNextPage():获取下一页

  9. isIsFirstPage():获取是否是第一页

  10. isIsLastPage():获取是否是最后一页

2、Mybatis多表操作

===============================================================================

2.1、多表模型介绍


我们之前学习的都是基于单表操作的,而实际开发中,随着业务难度的加深,肯定需要多表操作的。

  • 多表模型分类

  • 一对一:在任意一方建立外键,关联对方的主键。

  • 一对多:在多的一方建立外键,关联一的一方的主键。

  • 多对多:借助中间表,中间表至少两个字段,分别关联两张表的主键。

2.2、多表模型一对一操作


  1. 一对一模型: 人和身份证,一个人只有一个身份证

  2. 代码实现

  • 步骤一: sql语句准备

CREATE TABLE person(

id INT PRIMARY KEY AUTO_INCREMENT,

NAME VARCHAR(20),

age INT

);

INSERT INTO person VALUES (NULL,‘张三’,23);

INSERT INTO person VALUES (NULL,‘李四’,24);

INSERT INTO person VALUES (NULL,‘王五’,25);

CREATE TABLE card(

id INT PRIMARY KEY AUTO_INCREMENT,

number VARCHAR(30),

pid INT,

– 银行卡表的pid指向person表中的主键id

CONSTRAINT cp_fk FOREIGN KEY (pid) REFERENCES person(id)

);

INSERT INTO card VALUES (NULL,‘12345’,1);

INSERT INTO card VALUES (NULL,‘23456’,2);

INSERT INTO card VALUES (NULL,‘34567’,3);

  • 步骤二:实体类和接口

public class Person{

private Integer id; //主键id

private String name; //人的姓名

private Integer age; //人的年龄

//省略get/set,有参/无参方法

}

public class Card{

private Integer id; //主键id

private String number; //身份证号

private Person p; //所属人的对象

//省略get/set,有参/无参方法

}

public interface OneToOneMapper{

//查询全部

public abstract List selectAll();

}

  • 步骤三:配置文件
<?xml version&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值