学生mybatis分页查询
时间: 2023-10-24 11:05:17 浏览: 106
对于学生的MyBatis分页查询,你可以按照以下步进行操作:
1. 首先,在你的数据库中创建一个学生表,包含学生的相关信息,如学号、姓名、年龄等。
2. 在你的项目中引入MyBatis依赖,并配置好MyBatis的相关配置文件,包括数据库连接信息和Mapper的扫描路径等。
3. 创建一个学生的Mapper接口(例如StudentMapper),定义用于查询学生的方法。可以在接口中定义一个方法,如selectStudents,用于分页查询学生信息。
4. 在对应的Mapper XML文件中,编写SQL语句实现分页查询。可以使用MySQL的LIMIT关键字来限制返回的记录数量,并使用OFFSET关键字来指定偏移量。
例如:SELECT * FROM student LIMIT #{offset}, #{pageSize}
这里的offset表示偏移量,pageSize表示每页显示的记录数量。你可以根据传入的参数动态计算出offset的值。
5. 在你的Service层或者Controller层调用Mapper接口中定义的方法,传入相应的参数进行分页查询。
例如:studentMapper.selectStudents(offset, pageSize)
这里的offset和pageSize分别表示当前页数和每页显示的记录数量。
6. 最后,将查询结果返回给前端展示即可。
这是一个简单的学生MyBatis分页查询过程,你可以根据自己的项目需求进行具体的实现。希望对你有所帮助!如果有更多问题,请继续提问。
相关问题
用springboot+mybatis写一段代码:具体内容如下 1. 实现教师登录功能,登录成功显示学生列表页面,失败提示账号密码错误。(10不,分) 2. 完成学生表的查询功能,并实现学生分页查询功能。(10分) 3. 实现学生表修改编辑功能,要求点击修改默认显示学生信息,并且完成学号,姓名班级在提交前做非空校验。(10分) 4. 实现学生表修改保存功能,要求学号不可更改。(10分) 5. 利用Redis实现学生表查询缓存功能。(10分)
好的,以下是我的代码实现:
1. 实现教师登录功能:
Controller:
```java
@RestController
@RequestMapping("/teacher")
public class TeacherController {
@Autowired
private TeacherService teacherService;
@PostMapping("/login")
public Result login(@RequestBody Teacher teacher, HttpServletRequest request) {
boolean success = teacherService.login(teacher.getUsername(), teacher.getPassword());
if (success) {
HttpSession session = request.getSession();
session.setAttribute("username", teacher.getUsername());
return Result.success("登录成功");
} else {
return Result.error("账号密码错误");
}
}
@GetMapping("/studentList")
public Result studentList(HttpServletRequest request) {
HttpSession session = request.getSession();
String username = (String) session.getAttribute("username");
if (username != null) {
List<Student> studentList = studentService.getAllStudents();
return Result.success(studentList);
} else {
return Result.error("请先登录");
}
}
}
```
Service:
```java
@Service
public class TeacherService {
@Autowired
private TeacherMapper teacherMapper;
public boolean login(String username, String password) {
Teacher teacher = teacherMapper.findTeacherByUsername(username);
if (teacher != null && teacher.getPassword().equals(password)) {
return true;
} else {
return false;
}
}
}
```
Mapper:
```java
@Mapper
public interface TeacherMapper {
@Select("SELECT * FROM teacher WHERE username=#{username}")
public Teacher findTeacherByUsername(String username);
}
```
2. 完成学生表的查询功能,并实现学生分页查询功能:
Controller:
```java
@RestController
@RequestMapping("/student")
public class StudentController {
@Autowired
private StudentService studentService;
@GetMapping("/list")
public Result studentList(@RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "10") int pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<Student> studentList = studentService.getAllStudents();
PageInfo<Student> pageInfo = new PageInfo<>(studentList);
return Result.success(pageInfo);
}
@GetMapping("/search")
public Result searchStudents(@RequestParam String keyword, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "10") int pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<Student> studentList = studentService.searchStudents(keyword);
PageInfo<Student> pageInfo = new PageInfo<>(studentList);
return Result.success(pageInfo);
}
}
```
Service:
```java
@Service
public class StudentService {
@Autowired
private StudentMapper studentMapper;
public List<Student> getAllStudents() {
return studentMapper.getAllStudents();
}
public List<Student> searchStudents(String keyword) {
return studentMapper.searchStudents(keyword);
}
}
```
Mapper:
```java
@Mapper
public interface StudentMapper {
@Select("SELECT * FROM student")
public List<Student> getAllStudents();
@Select("SELECT * FROM student WHERE student_id=#{keyword} OR name LIKE CONCAT('%',#{keyword},'%') OR class_name LIKE CONCAT('%',#{keyword},'%')")
public List<Student> searchStudents(String keyword);
}
```
3. 实现学生表修改编辑功能:
Controller:
```java
@RestController
@RequestMapping("/student")
public class StudentController {
@Autowired
private StudentService studentService;
@GetMapping("/get")
public Result getStudentById(@RequestParam int id) {
Student student = studentService.getStudentById(id);
return Result.success(student);
}
@PostMapping("/update")
public Result updateStudent(@RequestBody Student student) {
if (StringUtils.isEmpty(student.getStudentId()) || StringUtils.isEmpty(student.getName()) || StringUtils.isEmpty(student.getClassName())) {
return Result.error("学号、姓名和班级不能为空");
}
studentService.updateStudent(student);
return Result.success("修改成功");
}
}
```
Service:
```java
@Service
public class StudentService {
@Autowired
private StudentMapper studentMapper;
public Student getStudentById(int id) {
return studentMapper.getStudentById(id);
}
public void updateStudent(Student student) {
studentMapper.updateStudent(student);
}
}
```
Mapper:
```java
@Mapper
public interface StudentMapper {
@Select("SELECT * FROM student WHERE id=#{id}")
public Student getStudentById(int id);
@Update("UPDATE student SET name=#{name}, class_name=#{className} WHERE id=#{id}")
public void updateStudent(Student student);
}
```
4. 实现学生表修改保存功能:
Controller:
```java
@RestController
@RequestMapping("/student")
public class StudentController {
@PostMapping("/update")
public Result updateStudent(@RequestBody Student student) {
if (StringUtils.isEmpty(student.getName()) || StringUtils.isEmpty(student.getClassName())) {
return Result.error("姓名和班级不能为空");
}
studentService.updateStudent(student);
return Result.success("修改成功");
}
}
```
Service:
```java
@Service
public class StudentService {
@Autowired
private StudentMapper studentMapper;
public void updateStudent(Student student) {
studentMapper.updateStudent(student);
}
}
```
Mapper:
```java
@Mapper
public interface StudentMapper {
@Update("UPDATE student SET name=#{name}, class_name=#{className} WHERE id=#{id}")
public void updateStudent(Student student);
}
```
5. 利用Redis实现学生表查询缓存功能:
Controller:
```java
@RestController
@RequestMapping("/student")
public class StudentController {
@Autowired
private StudentService studentService;
@GetMapping("/list")
public Result studentList(@RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "10") int pageSize) {
String cacheKey = "student_list_" + pageNum + "_" + pageSize;
List<Student> studentList = (List<Student>) RedisUtils.get(cacheKey);
if (studentList == null) {
PageHelper.startPage(pageNum, pageSize);
studentList = studentService.getAllStudents();
PageInfo<Student> pageInfo = new PageInfo<>(studentList);
RedisUtils.set(cacheKey, studentList, 60);
}
return Result.success(studentList);
}
}
```
Service:
```java
@Service
public class StudentService {
@Autowired
private StudentMapper studentMapper;
public List<Student> getAllStudents() {
return studentMapper.getAllStudents();
}
}
```
以上是我的代码实现,可能还有一些细节需要根据具体情况进行调整。其中 Redis 缓存的实现需要使用第三方库,如 jedis 或者 lettuce。
mybatis学生管理系统
这是一个基于Spring Boot 2.1.x实现的学生管理系统,包含学生、教师和管理员三种角色。使用的编译环境为JDK 1.8、MySQL 5.5和Tomcat 7,框架为Spring Boot 2.0和MyBatis,使用Maven作为jar包管理工具。系统中包含两张表,分别是User表和Student表,用于管理用户名、密码和学生信息。在搭建环境时,需要创建数据库和表,并导入相关文件,包括pom.xml坐标文件、applicationContext.xml配置文件、jdbc.properties文件、log4j.properties文件、spring-mvc.xml配置文件和web.xml配置文件。系统采用了三层架构,包括持久层、业务层和控制层。在查询语句前,需要调用方法传入当前页和每页显示的条数两个参数,然后使用PageHelper.startPage()方法设置分页相关参数,再调用studentService.findStudentByPage()方法查询学生信息,并将查询条件存到request共享域中。最后,使用PageInfo类获得与分页相关参数。
阅读全文