Java查询当月数据
1. 流程图
flowchart TD
start(开始) --> input(输入当月查询条件)
input --> check(检查条件是否合法)
check -->|合法| query(查询当月数据)
check -->|不合法| end(结束)
query --> output(输出查询结果)
output --> end
end --> finish(完成)
2. 整体流程
整个流程可以分为以下几个步骤:
- 输入当月查询条件
- 检查条件是否合法
- 查询当月数据
- 输出查询结果
- 完成
3. 详细步骤
3.1 输入当月查询条件
首先,我们需要定义一个变量来存储用户输入的查询条件,这里假设用户输入的是一个日期类型的变量 currentMonth
,表示当月的日期。
import java.util.Date;
Date currentMonth = new Date();
3.2 检查条件是否合法
接下来,我们需要判断用户输入的日期是否合法,比如不允许输入未来的日期。
// 获取当前日期
Date currentDate = new Date();
// 判断用户输入的日期是否大于当前日期,如果大于则为非法输入
if (currentMonth.after(currentDate)) {
System.out.println("输入的日期不合法!");
return;
}
3.3 查询当月数据
在查询之前,我们需要连接数据库,并准备好相应的 SQL 查询语句。假设我们使用的是 MySQL 数据库,并且有一个表名为 data
,包含一个日期字段 date
。
import java.sql.*;
import java.util.*;
// 数据库连接信息
String url = "jdbc:mysql://localhost:3306/mydatabase";
String username = "root";
String password = "password";
// SQL 查询语句
String sql = "SELECT * FROM data WHERE MONTH(date) = MONTH(?) AND YEAR(date) = YEAR(?)";
// 创建连接
Connection conn = DriverManager.getConnection(url, username, password);
// 创建预处理语句
PreparedStatement stmt = conn.prepareStatement(sql);
// 设置查询参数
Calendar calendar = Calendar.getInstance();
calendar.setTime(currentMonth);
stmt.setDate(1, new java.sql.Date(calendar.getTimeInMillis()));
stmt.setDate(2, new java.sql.Date(calendar.getTimeInMillis()));
// 执行查询
ResultSet rs = stmt.executeQuery();
3.4 输出查询结果
查询结果返回的是一个结果集(ResultSet),我们可以使用循环遍历的方式来输出每一条数据。
// 遍历结果集
while (rs.next()) {
// 获取每一行的数据
Date date = rs.getDate("date");
String value = rs.getString("value");
// 输出数据
System.out.println("日期:" + date + ",数值:" + value);
}
3.5 完成
最后,我们需要关闭数据库连接,释放资源。
// 关闭结果集
rs.close();
// 关闭预处理语句
stmt.close();
// 关闭连接
conn.close();
4. 完整代码
import java.sql.*;
import java.util.*;
public class QueryCurrentMonthData {
public static void main(String[] args) throws SQLException {
// 输入当月查询条件
Date currentMonth = new Date();
// 检查条件是否合法
Date currentDate = new Date();
if (currentMonth.after(currentDate)) {
System.out.println("输入的日期不合法!");
return;
}
// 查询当月数据
String url = "jdbc:mysql://localhost:3306/mydatabase";
String username = "root";
String password = "password";
String sql = "SELECT * FROM data WHERE MONTH(date) = MONTH(?) AND YEAR(date) = YEAR(?)";
Connection conn = DriverManager.getConnection(url, username, password);
PreparedStatement stmt = conn.prepareStatement(sql);
Calendar calendar = Calendar.getInstance();
calendar.setTime(currentMonth);
stmt.setDate(1, new java.sql.Date(calendar.getTimeInMillis()));
stmt.setDate(2, new java.sql.Date(calendar.getTimeInMillis()));
ResultSet rs = stmt.executeQuery();
// 输出查询结果
while (rs.next()) {
Date date = rs.getDate("date");
String value = rs.getString("value");
System.out.println("日期:" + date + ",数值:" + value);
}
// 完成
rs.close();
stmt.close();
conn.close();
}
}
以上就是查询当月数据的完整流程和代码示例。你可以根据实际情况修改相应的数据库连接信息和查询语句,以适应