Android SQLite简单使用

DataBaseHelper实现:

/**
 * DataBaseHelper
 * Create by dyj on 2022226 21:44 pm
 */
public class DataBaseHelper extends SQLiteOpenHelper {
    /**
     * 创建支出表语句
     */
    private static final String CREATE_BILL = "create table if not exists table_bill(" + "id integer primary key autoincrement,"
            + "year integer," + "month integer," + "day integer,"
            + "consumption char(5)," + "remarks text," + "amount char(20))";
    /**
     * 创建收入账单表语句
     */
    private static final String CREATE_INCOME = "create table if not exists table_income(" + "id integer primary key autoincrement,"
            + "year integer," + "month integer," + "day integer,"
            + "consumption char(5),remarks text,amount char(20))";
    /**
     * 创建笔记表语句
     */
    private static final String CREATE_NOTE = "create table if not exists table_note(" + "id integer primary key autoincrement,"
            + "year integer,month integer,day integer,"
            + "title char(20),content text)";

    /**
     * 数据库表升级语句
     */
    private static final String UPDATE_BILL = "drop table if exists table_bill";
    private static final String UPDATE_INCOME = "drop table if exists table_income";
    private static final String UPDATE_NOTE = "drop table if exists table_note";

    public DataBaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        sqLiteDatabase.execSQL(CREATE_BILL);
        sqLiteDatabase.execSQL(CREATE_INCOME);
        sqLiteDatabase.execSQL(CREATE_NOTE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
        sqLiteDatabase.execSQL(UPDATE_BILL);
        sqLiteDatabase.execSQL(UPDATE_INCOME);
        sqLiteDatabase.execSQL(UPDATE_NOTE);
    }
}

DataBaseManager代码:

/**
 * 数据库管理类型
 * 单例
 */
public class DataBaseManager {

    private static final String TAG = "DataBaseManager";
    /**
     * 单例实现
     *
     * @return DataBaseManager实例化对象
     */
    public static DataBaseManager dataBaseManager;
    public static DataBaseHelper dataBaseHelper;

    public static synchronized DataBaseManager getInstance() {
        if (dataBaseManager == null) {
            dataBaseManager = new DataBaseManager();
        }
        return dataBaseManager;
    }


    /**
     * 创建数据库
     *
     * @param context 上下文对象
     * @param name    数据库名字
     */
    public void createDataBase(Context context, String name) {
        if (dataBaseHelper == null) {
            dataBaseHelper = new DataBaseHelper(context, name, null, 1);
            Log.i("MainActivity", "创建数据库");
        }
    }


    /**
     * 添加一笔支出账单到数据库
     *
     * @param bill 支出账单对象
     */
    public void insertBill(Bill bill) {
        SQLiteDatabase sqLiteDatabase = dataBaseHelper.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put("year", bill.getYear());
        values.put("month", bill.getMonth());
        values.put("day", bill.getDay());
        values.put("consumption", bill.getConsumption());
        values.put("remarks", bill.getRemarks());
        values.put("amount", bill.getAmount());
        Log.e(TAG,values.toString());
        sqLiteDatabase.insert("table_bill", null, values);
        Log.i("MainActivity", "插入数据");
    }

    /**
     * 添加一笔收入到数据库
     *
     * @param income 收入账单对象
     */
    public void insertIncome(Income income) {
        SQLiteDatabase sqLiteDatabase = dataBaseHelper.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put("year", income.getYear());
        values.put("month", income.getMonth());
        values.put("day", income.getDay());
        values.put("consumption", income.getConsumption());
        values.put("remarks", income.getRemarks());
        values.put("amount", income.getAmount());
        Log.e(TAG,values.toString());
        sqLiteDatabase.insert("table_income", null, values);
    }

    /**
     * 添加一条新的笔记到数据库
     * @param note 笔记对象
     */
    public void insertNote(Note note){
        SQLiteDatabase sqLiteDatabase = dataBaseHelper.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put("year", note.getYear());
        values.put("month", note.getMonth());
        values.put("day", note.getDay());
        values.put("title", note.getTitle());
        values.put("content", note.getContent());
        sqLiteDatabase.insert("table_note", null, values);

    }

    /**
     * 查询支出账单
     *
     * @return 所有账单列表
     */
    public List<Bill> readBill() {
        List<Bill> list = new ArrayList<>();
        SQLiteDatabase sqLiteDatabase = dataBaseHelper.getReadableDatabase();
        Cursor cursor = sqLiteDatabase.query("table_bill", null, null, null, null, null, null);
        if (cursor.moveToFirst()) {
            do {
                int id = cursor.getInt(cursor.getColumnIndexOrThrow("id"));
                int year = cursor.getInt(cursor.getColumnIndexOrThrow("year"));
                int month = cursor.getInt(cursor.getColumnIndexOrThrow("month"));
                int day = cursor.getInt(cursor.getColumnIndexOrThrow("day"));
                String consumption = cursor.getString(cursor.getColumnIndexOrThrow("consumption"));
                String remarks = cursor.getString(cursor.getColumnIndexOrThrow("remarks"));
                String amount = cursor.getString(cursor.getColumnIndexOrThrow("amount"));
                Bill bill = new Bill(id, year, month, day, consumption, remarks, amount);
                list.add(bill);
            } while (cursor.moveToNext());
        }
        Log.i("MainActivity", "读数据" + list.toString());
        return list;
    }

    /**
     * 查询收入账单
     *
     * @return 所有账单列表
     */
    public List<Bill> readIncome() {
        List<Bill> list = new ArrayList<>();
        SQLiteDatabase sqLiteDatabase = dataBaseHelper.getReadableDatabase();
        Cursor cursor = sqLiteDatabase.query("table_income", null, null, null, null, null, null);
        if (cursor.moveToFirst()) {
            do {
                int id = cursor.getInt(cursor.getColumnIndexOrThrow("id"));
                int year = cursor.getInt(cursor.getColumnIndexOrThrow("year"));
                int month = cursor.getInt(cursor.getColumnIndexOrThrow("month"));
                int day = cursor.getInt(cursor.getColumnIndexOrThrow("day"));
                String consumption = cursor.getString(cursor.getColumnIndexOrThrow("consumption"));
                String remarks = cursor.getString(cursor.getColumnIndexOrThrow("remarks"));
                String amount = cursor.getString(cursor.getColumnIndexOrThrow("amount"));
                Bill bill = new Bill(id,year,month,day,consumption,remarks,amount);
                list.add(bill);
            } while (cursor.moveToNext());
        }
        Log.i("MainActivity", "读数据" + list.toString());
        return list;
    }

    public List<Note> readNote(){
        List<Note> list = new ArrayList<>();
        SQLiteDatabase sqLiteDatabase = dataBaseHelper.getReadableDatabase();
        Cursor cursor = sqLiteDatabase.query("table_note", null, null, null, null, null, null);
        if (cursor.moveToFirst()) {
            do {
                int id = cursor.getInt(cursor.getColumnIndexOrThrow("id"));
                int year = cursor.getInt(cursor.getColumnIndexOrThrow("year"));
                int month = cursor.getInt(cursor.getColumnIndexOrThrow("month"));
                int day = cursor.getInt(cursor.getColumnIndexOrThrow("day"));
                String title = cursor.getString(cursor.getColumnIndexOrThrow("title"));
                String content = cursor.getString(cursor.getColumnIndexOrThrow("content"));
                Note note = new Note(id, year, month, day, title, content);
                list.add(note);
            } while (cursor.moveToNext());
        }
        Log.i("MainActivity", "读数据" + list.toString());
        return list;
    }

    /**
     * 根据关键字搜索笔记
     * @param keyword 关键字
     * @return 含有关键字的笔记列表
     */
    public List<Note> readNoteByStr(String keyword){
        List<Note> list = new ArrayList<>();
        SQLiteDatabase sqLiteDatabase = dataBaseHelper.getReadableDatabase();
        Cursor cursor = sqLiteDatabase.query("table_note", null, null, null, null, null, null);
        if (cursor.moveToFirst()) {
            do {
                int id = cursor.getInt(cursor.getColumnIndexOrThrow("id"));
                int year = cursor.getInt(cursor.getColumnIndexOrThrow("year"));
                int month = cursor.getInt(cursor.getColumnIndexOrThrow("month"));
                int day = cursor.getInt(cursor.getColumnIndexOrThrow("day"));
                String title = cursor.getString(cursor.getColumnIndexOrThrow("title"));
                String content = cursor.getString(cursor.getColumnIndexOrThrow("content"));
                if(TextUtil.containCharacter(content,keyword)||TextUtil.containCharacter(title,keyword)){
                    Note note = new Note(id, year, month, day, title, content);
                    list.add(note);
                }
            } while (cursor.moveToNext());
        }
        Log.i("MainActivity", "读数据" + list.toString());
        return list;
    }

    /**
     * 删除表中的一条数据
     * @param table 表名称
     * @param id 数据id
     */
    public void deleteBill(String table,int id) {
        SQLiteDatabase sqLiteDatabase = dataBaseHelper.getWritableDatabase();
        sqLiteDatabase.delete(table, "id==?", new String[]{Integer.toString(id)});
    }


    /**
     * 修改账单
     *
     * @param id               账单id
     * @param consumption_type 消费类型
     * @param in_out           收入还是支出
     * @param payment_method   支付方式
     * @param amount           金额
     * @param time             时间
     */
    public void updateBill(int id, String consumption_type, int in_out, int payment_method, double amount, String time) {
        SQLiteDatabase sqLiteDatabase = dataBaseHelper.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put("consumption_type", consumption_type);
        values.put("in_out", in_out);
        values.put("amount", payment_method);
        values.put("amount", amount);
        values.put("time", time);
        sqLiteDatabase.update("table_bill", values, "id = ?", new String[]{Integer.toString(id)});
    }
}

在BaseActivity中初始化数据库:

 DataBaseManager.getInstance().createDataBase(this, Constant.DATA_BILL_NAME);//数据库初始化

                
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android SQLiteStudio是一个Android平台上的数据库管理工具,主要用于管理和操作SQLite数据库。 首先,SQLite是一个轻型的数据库引擎,它被广泛应用于Android平台上的应用程序开发。而SQLiteStudio则是一个用于管理SQLite数据库的可视化工具。通过SQLiteStudio,开发者可以方便地创建、修改和维护数据库表结构以及数据记录。 在Android应用开发过程中,使用SQLiteStudio可以帮助开发者更好地管理应用程序的数据库。例如,开发者可以通过SQLiteStudio创建数据库表,定义表的字段以及字段的数据类型。创建完毕后,开发者可以使用SQLiteStudio插入、更新和删除数据记录,还可以执行查询操作以检索数据库中的数据。 另外,SQLiteStudio也提供了一些高级功能,如索引、触发器和视图的管理。通过这些功能,开发者可以优化数据库的性能和查询效率,提高应用程序的响应速度和用户体验。 总之,Android SQLiteStudio是Android平台上的一款实用工具,它可以帮助开发者更好地管理和操作SQLite数据库。通过SQLiteStudio,开发者可以轻松创建、修改和维护数据库表结构以及数据记录,同时还可以使用高级功能优化数据库性能。 ### 回答2: Android SQLiteStudio是一个用于管理和操作SQLite数据库的开源软件。它提供了一个直观的图形用户界面(GUI),使用户能够轻松地创建、编辑和删除数据库、表格和数据。 使用Android SQLiteStudio,您可以执行各种数据库操作,如创建新数据库、导入和导出数据、编辑表格和数据行等。该软件提供了一个简单而强大的用户界面,使您能够轻松地进行这些操作,而无需编写复杂的SQL语句。 此外,Android SQLiteStudio还具有数据查看和过滤功能,以帮助用户更好地理解和分析数据库中的数据。您可以轻松地浏览和搜索数据库中的数据,并使用过滤器来查找特定的数据行。 Android SQLiteStudio还提供了一个强大的查询编辑器,让用户可以编写和执行复杂的SQL查询。您可以自定义查询的条件、排序和列,并立即看到结果。该软件还提供了一些常用的查询功能,如联接、聚合和分组。 总的来说,Android SQLiteStudio是一个简单而强大的工具,用于管理和操作SQLite数据库。它提供了一个直观的用户界面,使用户能够轻松地进行各种数据库操作,如创建、编辑和删除数据库、表格和数据。它还具有数据查看和查询编辑器的功能,使用户能够更好地理解和分析数据库中的数据。 ### 回答3: Android SQLitestudio是一个功能强大的数据库管理工具,用于管理和操作SQLite数据库。它可以在Android设备上直接运行,提供了简单直观的界面和多种功能,使得开发者可以更轻松地管理和查询数据库。 首先,SQLitestudio提供了一个直观的图形界面,使得用户可以通过简单的点击和拖动操作来管理数据库。用户可以轻松地创建、编辑和删除表格、字段和索引,而不需要编写复杂的SQL语句。此外,SQLitestudio还提供了丰富的模板和向导,帮助用户快速创建数据库结构。 其次,SQLitestudio具有强大的查询功能,允许用户轻松执行各种复杂的SQL查询。用户可以使用SQL编辑器编写和调试SQL语句,然后通过查询结果窗口查看查询结果。此外,SQLitestudio还提供了查询构建器,帮助用户快速构建常见的查询语句,减少了错误和繁琐的工作。 此外,SQLitestudio还提供了数据导入和导出功能,用户可以将数据从其他数据库导入到SQLite数据库中,或者将SQLite数据库导出到其他格式(如CSV、JSON等)。这种灵活性和互操作性使得开发者可以更好地与其他数据库和数据源进行集成。 最后,SQLitestudio还支持批量操作和数据编辑。用户可以一次性插入、更新或删除多行数据,而不需要手动编写和执行多个SQL语句。此外,SQLitestudio还提供了直接编辑数据的功能,用户可以直接在表格中编辑和更新数据,而不需要编写和执行SQL语句。 综上所述,Android SQLitestudio是一个强大的数据库管理工具,提供了直观的界面、丰富的功能和强大的查询能力。它方便了开发者管理和操作SQLite数据库,在Android开发中起到了重要的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值