刚刚开年,风轻云淡。
昨天领导叫我用SQLite数据库写一个便签。于是,我便写了。
用数据库写便签,无外乎就是对数据库的增删改查的一些操作,UI界面随自己心意而定。
我今天主要也是说一些数据库的操作。话不多说,我们进入正题。
1.SQLite简介 SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入 式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持 Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、PHP、Java、C++、.Net等,还有ODBC接口,同样比起 Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。 二.SQLiteDatabase的介绍 Android提供了创建和是用SQLite数据库的API。SQLiteDatabase代表一个数据库对象,提供了操作数据库的一些方法。在Android的SDK目录下有sqlite3工具,我们可以利用它创建数据库、创建表和执行一些SQL语句。下面是SQLiteDatabase的常用方法。 SQLiteDatabase的常用方法 方法名称 方法表示含义 openOrCreateDatabase(String path,SQLiteDatabase.CursorFactory factory) 打开或创建数据库 insert(String table,String nullColumnHack,ContentValues values) 插入一条记录 delete(String table,String whereClause,String[] whereArgs) 删除一条记录 query(String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy) 查询一条记录 update(String table,ContentValues values,String whereClause,String[] whereArgs) 修改记录 execSQL(String sql) 执行一条SQL语句 close() 关闭数据库 创建数据库 创建数据库工具类 增删改查 创建数据库 构造方法创造数据库 super(context , "user" , null , 1); 参数一;上下文对象 参数二:数据库名称 参数三:游标工厂 参数四:当前数据库的版本 创建表 “create table 表名 (name verchar(20) ,age verchar(10) ,sex verchar(10))” String sql = “create table 表名 (name verchar(20) ,age verchar(10) ,sex verchar(10))” db.execSQL(sql); 创建数据库工具类 主要用来封装对数据的操作(增删改查) 声明数据库类的对象 声明数据库帮助类 public class MySqliteHelpe{ MySqlite mySqlite = null ; SQLiteDatabase db = null ; public MySqliteHelpe(Context context){ mySqlite = new MySqlite(context); db = mySqlite.getReadableDatabase() } public void addUser(){ String sql = "insert info User__info (name , age) values ('coco' , '12')"; db.execSQL(sql); } public void findUser(){ String sql = "select * from user_info where name = ?"; Cursor cursor = db.rawQuery(sql , new String[]{"coco"}); cursor.moveToFirst(); while(cursor.isAfterLast){ String name = cursor.getString(cursor.getColumIndex("name")); String age = cursor.getString(cursor.getColumIndex("age")); cursor.maveToNext(); } } } 删除: delete from table1 范围 delete from user_info where name = 'coco' ; 更新: update table1 set filed1 = values where 范围 查找: select * from table1 where name = 数据库属于耗时操作 重点 数据库存储数据操纵流程 1,创建数据库: 创建一个类extends SQLiteOpenHelper 用构造方法创建数据库 创建表 2,创建数据库帮助类 主要封装对数据库的一些操作 public class MySqliteHelp { MySqlite mySqlite = null ; SQLiteDatabase db = null ; public MySqliteHelp(Context context ){ mySqlite = new MySqlite(context) ; db = mySqlite .getReadableDatabase() ; } 创建数据库帮助类 主要用来封装对数据的操作(增删改查) 声明数据库类的对象 声明数据库帮助类 public void addUser (String name){ String sql = "insert into user_info (name) values ('" +name+ "')" ; db .execSQL(sql) ; } /* 添加用户的方法 用到的语句 insert into 表名 (列名)values (‘“+传进来的数据+”’) db.execSQL(sql) 这句话的意思应该是执行上一句话 public int deleteUser (String name){ int sum = 0 ; ArrayList<String> arrayList = new ArrayList<>() ; String sqq = "select * from user_info" ; Cursor cursor = db .rawQuery(sqq , null ) ; while (cursor.moveToNext()){ String user_name = cursor.getString(cursor.getColumnIndex( "name" )) ; arrayList.add(user_name) ; } cursor.close() ; for ( int i = 0 ; i<arrayList.size() ; i++){ String ss = arrayList.get(i).toString() ; if (ss.equals(name)){ sum = 1 ; String sql = "delete from user_info where name = '" +name+ "'" ; db .execSQL(sql) ; break; } } return sum ; } public int setUser (String name_on , String name_off){ int sum = 0 ; ArrayList<String> arrayList = new ArrayList<>() ; String sqq = "select * from user_info " ; Cursor cursor = db .rawQuery(sqq , null ) ; cursor.moveToFirst() ; while (cursor.moveToNext()){ String ss = cursor.getString(cursor.getColumnIndex( "name" )) ; arrayList.add(ss) ; } cursor.close() ; for ( int i = 0 ; i<arrayList.size() ; i++){ if (arrayList.get(i).toString().equals(name_on)){ sum = 1 ; String sql = "update user_info set name = '" +name_off+ "' where name = '" +name_on+ "'" ; db .execSQL(sql) ; } } return sum ; } } public int selectUser (String name){ int sum = 0 ; ArrayList<String> arrayList = new ArrayList<>() ; String sql = "select * from user_info" ; Cursor cursor = db .rawQuery(sql ,null ) ; cursor.moveToFirst() ; while (cursor.moveToNext()){ String select_name = cursor.getString(cursor.getColumnIndex( "name" )) ; arrayList.add(select_name) ; } cursor.close() ; for ( int i = 0 ; i < arrayList.size() ; i++){ if (arrayList.get(i).toString().equals(name)){ sum = 1 ; } } return sum ; } public ArrayList<String> findUser (){ String sql = "select * from user_info" ; Cursor cursor = db .rawQuery(sql , null ) ; cursor.moveToFirst() ; ArrayList<String> arrayList = new ArrayList<>() ; while (cursor.moveToNext()){ String name = cursor.getString(cursor.getColumnIndex( "name" )) ; arrayList.add(name) ; } return arrayList ; } 附上GitHub地址:https://github.com/DingMr/NoteDemo 付出不一定有收获,你的点赞是我写下去的动力。