个人作业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(); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2023-05-06 Day16