个人作业7
今天继续完成个人作业的查询统计功能,由于安卓远程连接数据库需要解决线程问题,查询记录一直显示不出来,经过我不屑的学习,了解线程相关问题,最终开辟新线程完成了查询统计功能


public String query() { // 查询的 sql 语句 String sql = "select * from daka"; Connection connection = JDBCUtils.getConn(); PreparedStatement ps = null; ResultSet rs = null; StringBuilder builder = new StringBuilder(); try { ps = connection.prepareStatement(sql); // 执行语句(执行查询语句用的是 executeQuery 方法) rs = ps.executeQuery(); // 得到查询结果 if (rs != null) { while (rs.next()) { builder.append("id:"); builder.append(rs.getString(1)); builder.append("\n打卡日期:"); builder.append(rs.getString(2)); builder.append("\n开始时间:"); builder.append(rs.getString(3)); builder.append("\n每日学习记录:"); builder.append(rs.getString(4)); builder.append("\n学习时长:"); builder.append(rs.getInt(5)); builder.append("小时\n\n"); } } } catch (SQLException e) { e.printStackTrace(); } finally { if (ps != null) { try { ps.close(); } catch (SQLException e) { e.printStackTrace(); } } if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } } return builder.toString(); } public String query2() { // 查询的 sql 语句 Connection conn = null; Statement stmt = null; int num=0; StringBuilder builder = new StringBuilder(); try { // 连接到数据库 conn = JDBCUtils.getConn(); // 创建 Statement 对象 stmt = conn.createStatement(); // 执行 SQL 查询 ResultSet rs = stmt.executeQuery("SELECT COUNT(*) FROM daka"); // 输出结果 if (rs.next()) { System.out.println("数据总数: " + rs.getInt(1)); builder.append("本月目标时长:22小时\n"); builder.append("本月应打卡天数:22天\n"); builder.append("本月打卡天数:"); builder.append(rs.getInt(1)); builder.append("天\n本月打卡总时长:"); } rs = stmt.executeQuery("SELECT sum(times)FROM daka"); if(rs.next()){ num=rs.getInt(1); //builder.append(rs.getInt(1)); } builder.append(num+"小时"); builder.append("\n目标完成度:"+(num*100)/22.0+"%"); // 关闭结果集、Statement 和连接 rs.close(); stmt.close(); conn.close(); } catch (SQLException se) { // 处理 SQL 异常 se.printStackTrace(); } catch (Exception e) { // 处理 Class.forName 错误等其他错误 e.printStackTrace(); } finally { // 关闭资源 try { if (stmt != null) stmt.close(); } catch (SQLException se2) { } try { if (conn != null) conn.close(); } catch (SQLException se) { se.printStackTrace(); } } return builder.toString(); }

浙公网安备 33010602011771号