2025.4.18(周五)

package com.example.myapplication5.Utils;
/* 本来想定义为静态工具类的,由于有传入参数helper,故不这样设置 */
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import static java.lang.Integer.parseInt;

public class dbProcess2 {
    //    启动类
    private MyHelper helper;
    //    数据库
    private SQLiteDatabase db;

    public dbProcess2(MyHelper helper) {
        this.helper = helper;

    }

    //    每次的数据库对象要重新获取
//    增删改
    public void execSql(String sql) {
        //  获取数据库
        db = helper.getWritableDatabase();
        db.execSQL(sql);
        db.close();
    }

    //    查询收支记录
    public void query(String sql, TextView mTvShow, Context context) {
        //  获取数据库
        db = helper.getWritableDatabase();
        Cursor cursor = db.rawQuery(sql, null);
        int number = cursor.getCount();
        if (cursor.getCount() == 0) {
            mTvShow.setText("");
            Toast.makeText(context, "没有数据", Toast.LENGTH_SHORT).show();
        } else {
            cursor.moveToFirst();
//            下标从0开始
//            setText-->append
            mTvShow.append("\n------------------------------");
            mTvShow.setText("\n" + cursor.getString(2) + "元," + cursor.getString(3) + "," + cursor.getString(4) + "," + cursor.getString(5) + "," + cursor.getString(6));
            mTvShow.append("\n------------------------------");
        }
        while (cursor.moveToNext()) {
            mTvShow.append("\n" + cursor.getString(2) + "元," + cursor.getString(3) + "," + cursor.getString(4) + "," + cursor.getString(5) + "," + cursor.getString(6) );
            mTvShow.append("\n------------------------------");
        }
        cursor.close();
        db.close();
    }

    //    查询收支便签
    public void queryTips(String sql, TextView mTvShow, Context context) {
        //  获取数据库
        db = helper.getWritableDatabase();
        Cursor cursor = db.rawQuery(sql, null);
        int number = cursor.getCount();
        System.out.println(number+"------");
        if (cursor.getCount() == 0) {
            mTvShow.setText("");
            System.out.println(1111);
            Toast.makeText(context, "没有数据", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(context,"查询到"+number+"条数据",Toast.LENGTH_SHORT).show();
            cursor.moveToFirst();
//            下标从0开始
//            setText-->append
            System.out.println(cursor.getString(0)+cursor.getString(2));
            mTvShow.setText(cursor.getString(0) + "," + cursor.getString(2) + ";");
        }
        while (cursor.moveToNext()) {
            System.out.println(cursor.getString(0)+cursor.getString(2));
            mTvShow.append("\n" + cursor.getString(0) + "," + cursor.getString(2) + ";");
        }
        cursor.close();
        db.close();
    }

    //  根据用户名查询密码或权限
    public String queryOne(String sql) {
        //  获取数据库
        db = helper.getWritableDatabase();
        Cursor cursor = db.rawQuery(sql, null);
        if (cursor.getCount() == 0) {
            return "用户不存在";
        } else {
            cursor.moveToFirst();
            /* 这里index为何是0 解答:因为这里获取的是单个列---select password/role */
            return cursor.getString(0);
        }
    }

    //    根据用户名查询收入/支出表 根据月份查询收支表
    public int queryMoney(String sql) {
        int count = 0;
        //  获取数据库
        db = helper.getWritableDatabase();
        Cursor cursor = db.rawQuery(sql, null);
        System.out.println("查询到的记录条数"+cursor.getCount());
        if (cursor.getCount() == 0) {
            return 0;
        } else {
            cursor.moveToFirst();
            String num = cursor.getString(0);
            if (StringUtils.isBlank(num)){
//                这里需要加个判断是否为空,为啥总会查到一条记录 ???
                return 0;
            }
            count = parseInt(num);
            System.out.println("-----" + num + "-----");
        }
        cursor.close();
        db.close();
        return count;
    }

/*
常用数据库sql语句
*  查 :select * from user where name='小明' and role='用户'
*  删:delete from user where name='小明'
*  改:update user set role='管理员' where name='小明'
*  增:insert into user(name,password,role) values('小明','123','管理员')
*  其他: select sum(income.money) as money from income where classes='工资' order by name
* */
}

 

posted @ 2025-04-17 09:07  记得关月亮  阅读(14)  评论(0)    收藏  举报