面试准备+复习分享:
为了应付面试也刷了很多的面试题与资料,现在就分享给有需要的读者朋友,资料我只截取出来一部分哦
//第二页:显示3条数据
PageHelper.startPage(3,3);
//6.处理结果
for(Student student:list){
System.out.println(student);
}
}
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);
}
}
分页:可以将很多条结果进行分页显示。
-
分页插件 jar 包: pagehelper-5.1.10.jar jsqlparser-3.1.jar
-
<plugins>
:集成插件标签。 -
分页助手相关 API
1.PageHelper:分页助手功能类。
-
startPage():设置分页参数
-
PageInfo:分页相关参数功能类。
-
getTotal():获取总条数
-
getPages():获取总页数
-
getPageNum():获取当前页
-
getPageSize():获取每页显示条数
-
getPrePage():获取上一页
-
getNextPage():获取下一页
-
isIsFirstPage():获取是否是第一页
-
isIsLastPage():获取是否是最后一页
===============================================================================
我们之前学习的都是基于单表操作的,而实际开发中,随着业务难度的加深,肯定需要多表操作的。
-
多表模型分类
-
一对一:在任意一方建立外键,关联对方的主键。
-
一对多:在多的一方建立外键,关联一的一方的主键。
-
多对多:借助中间表,中间表至少两个字段,分别关联两张表的主键。
-
一对一模型: 人和身份证,一个人只有一个身份证
-
代码实现
- 步骤一: 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();
}
- 步骤三:配置文件