写点什么

SQLiteOpenHelper 数据库的创建 or 升级 or 增删改查,android 文件下载框架

作者:嘟嘟侠客
  • 2021 年 11 月 28 日
  • 本文字数:2330 字

    阅读完需:约 8 分钟

setContentView(R.layout.activity_main);


init();


setAction();


}


/** 初始化 View */


private void init() {


createDataBase = (Button) findViewById(R.id.create_database);


addData = (Button) findViewById(R.id.add_data);


updateData = (Button) findViewById(R.id.update_data);


deleteData = (Button) findViewById(R.id.delete_data);


queryData = (Button) findViewById(R.id.query_data);


replaceData = (Button) findViewById(R.id.replace_data);


/** 通过构造函数的参数将数据库信息指定成功;做数据库升级时要改版本号 1 改为 2 */


dbHelper = new MyDataBaseHelper(this, "BookStore.db", null, 2);


}


/** 设置监听事件 */


private void setAction() {


createDataBase.setOnClickListener(new OnClickListener() {


@Override


public void onClick(View v) {


dbHelper.getWritableDatabase();


}


});


addData.setOnClickListener(new OnClickListener() {


@Override


public void onClick(View v) {


SQLiteDatabase db = dbHelper.getWritableDatabase();


ContentValues values = new ContentValues();


/** 开始组装第一组数据 */


values.put("name", "the Da Vinci Code");


values.put("author", "dan Brown");


values.put("pages", 454);


values.put("price", 16.96);


/** 插入第一条数据 */


db.insert("book", null, values);


values.clear();


/** 开始组装第二组数据 */


values.put("name", "the Last Symbol");


values.put("author", "dan Brown");


values.put("pages", 510);


values.put("price", 19.96);


/** 插入第二条数据 */


db.insert("book", null, values);


Toast.makeText(MainActivity.this, "inset succeeded----",


Toast.LENGTH_SHORT).show();


}


});


updateData.setOnClickListener(new OnClickListener() {


@Override


public void onClick(View v) {


SQLiteDatabase db = dbHelper.getWritableDatabase();


ContentValues values = new ContentValues();


values.put("price", 10.99);


/** 以下的意思是将名 the Da Vinci Code 这本书的价格改为 10.99 */


db.update("Book", values, "name = ?",


new String[] { "the Da Vinci Code" });


Toast.makeText(MainActivity.this, "update succeeded+++++++",


Toast.LENGTH_SHORT).show();


}


});


deleteData.setOnClickListener(new OnClickListener() {


@Override


public void onClick(View v) {


SQLiteDatabase db = dbHelper.getWritableDatabase();


/** 删除页数超过 500 页的书籍 */


db.delete("Book", "pages > ?", new String[] { "500" });


Toast.makeText(MainActivity.this, "delete succeeded$$$$$$$",


Toast.LENGTH_SHORT).show();


}


});


queryData.setOnClickListener(new OnClickListener() {


@Override


public void onClick(View v) {


SQLiteDatabase db = dbHelper.getWritableDatabase();


/** 查询表中所有的数据 */


Cursor cursor = db.query("Book", null, null, null, null, null,


null);


if (cursor.moveToFirst()) {


do {


String name = cursor.getString(cursor


.getColumnIndex("name"));


String author = cursor.getString(cursor


.getColumnIndex("author"));


int pages = cursor.getInt(cursor


.getColumnIndex("pages"));


double price = cursor.getDouble(cursor


.getColumnIndex("price"));


} while (cursor.moveToNext());


}


cursor.close();


Toast.makeText(MainActivity.this, "query succeeded@@@@@@",


Toast.LENGTH_SHORT).show();


}


});


/** 使用事务进行数据的更换,这样会比较安全 */


replaceData.setOnClickListener(new OnClickListener() {


@Override


public void onClick(View v) {


SQLiteDatabase db = dbHelper.getWritableDatabase();


/** 开启事务 作用:删除表里面的数据的时,要么成功,要么失败,两个事件只能同时完成 */


db.beginTransaction();


try {


db.delete("Book", null, null);


if (true) {


/** 这里抛出一个异常,让事务失败 */


throw new NullPointerException();


}


@SuppressWarnings("unused")


ContentValues values = new ContentValues();


values.put("name", "Game of Thrones");


values.put("author", "George Martin");


values.put("pages", 720);


values.put("price", 20.55);


db.insert("Book", null, values);


/** 事务已经执行完成 */


db.setTransactionSuccessful();


} catch (Exception e) {


e.printStackTrace();


} finally {


/** 结束事务,在 finally 里面结束,无论如何都会执行到这边的 */


db.endTransaction();


}


}


});


}


}


直接上代码


import android.content.Context;


import android.database.sqlite.SQLiteDatabase;


import android.database.sqlite.SQLiteDatabase.CursorFactory;


import android.database.sqlite.SQLiteOpenHelper;


import android.widget.Toast;


/**


*


  • @项目名:DataBaseTest

  • @类名称:MyDataBaseHelper

  • @类描述: 对数据库的创建和操作

  • @创建人:HXF

  • @修改人:

  • @创建时间:2015-8-4 上午 9:07:02

最后

其实 Android 开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。


下图是我进阶


《Android 学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享


学习所积累的历年腾讯、头条、阿里、美团、字节跳动等公司 2019-2021 年的高频面试题,博主还把这些技术点整理成了视频和 PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节



整理不易,望各位看官老爷点个关注转发,谢谢!祝大家都能得到自己心仪工作。


本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

用户头像

嘟嘟侠客

关注

还未添加个人签名 2021.03.19 加入

还未添加个人简介

评论

发布
暂无评论
SQLiteOpenHelper数据库的创建or升级or增删改查,android文件下载框架