个人作业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();
    }
复制代码

 

posted @   奶油冰激凌  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2023-05-06 Day16
点击右上角即可分享
微信分享提示