SQLite数据库及在Android开发中的基本使用
轻量级数据库,无需搭建服务器。
这里提供从官网下载的方法,如果有Android Studio的项目,可以跳转到本文:SQLite在Android中的应用。
1.进入sqlite官网(https://www.sqlite.org/index.html),进入Download
2.选择Windows版本下的sqlite-tools,下载压缩包
3.解压后的文件
4.进入系统环境配置界面(可在设置里面搜索),编辑环境变量
5.在系统变量的Path中添加sqlite3.exe的路径(如C:\Program Files (x86)\sqlite-tools-win32-x86-3360000)
6.进入命令行,输入sqlite3语句,测试环境是否安装成功
.database
.open 数据库文件名(后缀名为.db)
.schema
.table
create table 表名(字段1 数据类型, 字段2 数据类型, ...);
SQL语言在这里都可以使用,如insert(),select,update()
1.打开Android Studio,右上方找到SDK Manager,打开并复制SDK的路径
2.在Sdk/platform-tools目录下可以找到SQLite数据库的运行文件 sqlite3.exe,然后跟上面步骤一样配置环境变量即可。
1.新建一个公共类继承自SQLiteOpenHelper,建好以后需要重写构造函数,以及onCreate()和onUpgrade()两个方法
public class MyOpenHelper extends SQLiteOpenHelper { //重写构造函数 public MyOpenHelper(Context context){ super(context, "taskDB.db", null,1); //taskDB.db为数据库名,若不存在则创建 } @Override public void onCreate(SQLiteDatabase db) { String create_sql = "create table task(id INTEGER PRIMARY KEY AUTOINCREMENT, content varchar(50), status int);"; db.execSQL(create_sql); //执行SQL语句 } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
//新建MyOpenHelper实例,注意自己重新定义的构造函数的参数 MyOpenHelper openHelper = new MyOpenHelper(this); //通过getWritableDatabase()创建用于写数据库的实例 SQLiteDatabase writableDatabase = openHelper.getWritableDatabase(); //新建ContentValues类,用来存放插入数据库的数据 ContentValues task_item = new ContentValues(); //ContentValues.put(key, value) key需要与数据表的字段名对应 task_item.put("content", ((EditText) findViewById(R.id.Content)).getText().toString()); task_item.put("status",0); //执行插入语句 writableDatabase.insert(数据表名, nullColumnHack, ContentValues) //nullColumnHack通常为null writableDatabase.insert("task", null, task_item); //关闭数据库,减少内存资源浪费 writableDatabase.close();
public List<TaskItem> task_list = new ArrayList<>(); public void ReadDataBase(){ MyOpenHelper openHelper = new MyOpenHelper(this); //创建SQLiteDatabase实例并获取ReadableDatabase SQLiteDatabase read_db = openHelper.getReadableDatabase(); //使用ReadableDatabase中的游标 Cursor cursor = read_db.query("task",new String[]{"id", "content", "status"},null,null,null,null,null); //使用while语句遍历游标Cursor,将从数据库获取的数据放进list列表中 while(cursor.moveToNext()){ TaskItem task_item = new TaskItem(); //游标get方法传入的字段索引值是从0开始的 task_item.setId(cursor.getInt(0)); task_item.setContent(cursor.getString(1)); task_item.setStatus(cursor.getInt(2)); task_list.add(task_item); } //关闭游标和ReadableDatabase,减少内存资源浪费 cursor.close(); read_db.close(); } class TaskItem { private int id; private String content; private int status; public int getId() { return id; } public String getContent() { return content; } public int getStatus() { return status; } public void setId(int id) { this.id = id; } public void setContent(String content) { this.content = content; } public void setStatus(int status) { this.status = status; } }