Java代码 分页查询代码
时间: 2023-03-29 09:00:57 浏览: 103
好的,以下是一个 Java 分页查询的示例代码:
```
public List<User> getUsers(int pageNum, int pageSize) {
int start = (pageNum - 1) * pageSize;
String sql = "SELECT * FROM user LIMIT ?, ?";
List<User> userList = jdbcTemplate.query(sql, new Object[]{start, pageSize}, new BeanPropertyRowMapper<>(User.class));
return userList;
}
```
其中,pageNum 表示要查询的页码,pageSize 表示每页的记录数。这个方法会返回一个 User 对象的列表,表示查询到的用户信息。
相关问题
Java代码 springboot 分页查询代码
以下是一个简单的 Spring Boot 分页查询代码示例:
```
@GetMapping("/users")
public Page<User> getUsers(@RequestParam(defaultValue = "") int page,
@RequestParam(defaultValue = "10") int size) {
Pageable pageable = PageRequest.of(page, size);
return userRepository.findAll(pageable);
}
```
这个代码片段使用了 Spring Data JPA 的 `Pageable` 和 `PageRequest` 接口来实现分页查询。`userRepository.findAll(pageable)` 方法会返回一个 `Page` 对象,其中包含了查询结果和分页信息。
java swing 分页查询 代码
好的,以下是Java Swing分页查询代码示例:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
public class PaginationQuery extends JFrame implements ActionListener {
private JTextField pageTextField;
private JButton goButton, prevButton, nextButton;
private JPanel contentPanel;
private JLabel resultLabel;
private ArrayList<String> results; // 存储查询结果
private int pageSize = 10; // 每页数量
private int currentPage = 1; // 当前页码
public PaginationQuery() {
super("分页查询");
// 创建组件
pageTextField = new JTextField(10);
goButton = new JButton("Go");
prevButton = new JButton("Prev");
nextButton = new JButton("Next");
resultLabel = new JLabel();
// 添加监听器
goButton.addActionListener(this);
prevButton.addActionListener(this);
nextButton.addActionListener(this);
// 设置布局
contentPanel = new JPanel(new BorderLayout());
JPanel topPanel = new JPanel(new FlowLayout());
topPanel.add(new JLabel("跳转到第"));
topPanel.add(pageTextField);
topPanel.add(new JLabel("页"));
topPanel.add(goButton);
topPanel.add(prevButton);
topPanel.add(nextButton);
contentPanel.add(topPanel, BorderLayout.NORTH);
contentPanel.add(resultLabel, BorderLayout.CENTER);
setContentPane(contentPanel);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setLocationRelativeTo(null);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
int totalPage = (int) Math.ceil((double) results.size() / pageSize); // 总页数
Object source = e.getSource();
if (source == goButton) {
// 跳转到指定页码
try {
int targetPage = Integer.parseInt(pageTextField.getText());
if (targetPage < 1 || targetPage > totalPage) {
JOptionPane.showMessageDialog(this, "页码超出范围", "错误", JOptionPane.ERROR_MESSAGE);
} else {
currentPage = targetPage;
updateResultLabel();
}
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(this, "页码格式错误", "错误", JOptionPane.ERROR_MESSAGE);
}
} else if (source == prevButton) {
// 上一页
if (currentPage > 1) {
currentPage--;
updateResultLabel();
}
} else if (source == nextButton) {
// 下一页
if (currentPage < totalPage) {
currentPage++;
updateResultLabel();
}
}
}
private void updateResultLabel() {
int startIndex = (currentPage - 1) * pageSize;
int endIndex = Math.min(startIndex + pageSize, results.size());
StringBuilder sb = new StringBuilder();
sb.append("<html>"); // 使 Label 能够显示多行文本
for (int i = startIndex; i < endIndex; i++) {
sb.append(results.get(i)).append("<br>");
}
sb.append("</html>");
resultLabel.setText(sb.toString());
contentPanel.revalidate(); // 更新界面
}
public void query(String condition) {
// 模拟查询操作
results = new ArrayList<>();
for (int i = 1; i <= 100; i++) {
results.add(condition + " " + i);
}
updateResultLabel();
}
public static void main(String[] args) {
PaginationQuery pq = new PaginationQuery();
pq.query("Test"); // 查询条件为 "Test"
}
}
```
这是一个简单的带分页功能的 Java Swing 程序示例,使用了 JLabel、JTextField、JButton 和 JPanel 等 Swing 组件,并实现了 ActionListener 接口。当用户输入页码点击“Go”按钮时,程序会跳转到对应页码并显示结果,点击“Prev”和“Next”按钮会分别向上翻页和向下翻页。在 `query` 方法中,执行查询操作并把结果存储在 `results` 列表中,通过调用 `updateResultLabel` 方法来更新显示结果的 JLabel。
阅读全文