安卓--SQLite数据库的简单使用(说明+代码)
2016-07-20 23:16
375 查看
安卓中常用SQLite进行存储,这篇文章不说明SQLite原理(因为我也不懂。。。)只说说使用方法
对数据库打开和操作自然少不了SQLiteOpenHelper的帮助,这里主要介绍SQLiteOpenHelper和自定义中间件在程序中的使用。
数据库、SQLiteOpenHelper、自定义数据库操作类、应用程序 这四个之间的关系如图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202007/14/ceedb8ecb6b1e953c840dbfdaafb00a7)
1 SQLiteOpenHelper
自定义sqlhelper类继承SQLiteOpenHelper,用于创建或打开数据库
2 自定义数据库类
用于实现数据的各种操作,使得应用程序使用时,实例化对象即可调用
//有时间再写
对数据库打开和操作自然少不了SQLiteOpenHelper的帮助,这里主要介绍SQLiteOpenHelper和自定义中间件在程序中的使用。
数据库、SQLiteOpenHelper、自定义数据库操作类、应用程序 这四个之间的关系如图
1 SQLiteOpenHelper
自定义sqlhelper类继承SQLiteOpenHelper,用于创建或打开数据库
public class MyDataBaseHelper extends SQLiteOpenHelper { private static final int VERSION = 1; public MyDataBaseHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } public MyDataBaseHelper(Context context,String name,int version) { this(context,name,null,version); } public MyDataBaseHelper(Context context,String name) { this(context,name,VERSION); } @Override public void onCreate(SQLiteDatabase db) { } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
2 自定义数据库类
用于实现数据的各种操作,使得应用程序使用时,实例化对象即可调用
public class MyDataBaseUint { public static final String DATABASE_NAME = "userinfo_db"; public static final String DATETIME = "noteinfo"; public static final String CONTENT = "content"; private MyDataBaseHelper dbHelper; public MyDataBaseUint(Context context) { dbHelper = new MyDataBaseHelper(context, DATABASE_NAME); SQLiteDatabase db = dbHelper.getWritableDatabase(); } public boolean CreateTable(String tablename) { SQLiteDatabase db = dbHelper.getWritableDatabase(); String CREATE_TABLE = "CREATE TABLE user" + tablename + "( id INT IDENTITY(1,1) PRIMARY KEY," + "filename TEXT," + "time TEXT," + "location TEXT," + "contain TEXT)"; try { db.execSQL(CREATE_TABLE); return true; } catch (Exception e) { // TODO: handle exception return false; } } public boolean InsertData(String tablename, String[] values) { SQLiteDatabase db = dbHelper.getWritableDatabase(); String INSERT_DATA = "INSERT INTO user" + tablename + " (filename,time,location,contain)" + " VALUES (\"" + values[0] + "\",\"" + values[1] + "\",\"" + values[2] + "\",\"" + values[3] + "\")"; try { db.execSQL(INSERT_DATA); return true; } catch (Exception e) { // TODO: handle exception return false; } } // 删除数据 返回值true false public boolean DeleteData(String tablename, String key, String value) { SQLiteDatabase db = dbHelper.getWritableDatabase(); String DELETE_DATA = "DELETE FROM user" + tablename + " WHERE " + key + " = \"" + value+"\""; try { db.execSQL(DELETE_DATA); return true; } catch (Exception e) { return false; } } // 更新操作就相当于执行SQL语句当中的update语句 // UPDATE table_name SET XXCOL=XXX WHERE XXCOL=XX... public boolean UpdateData(String tablename, String []values, String key) { SQLiteDatabase db = dbHelper.getWritableDatabase(); String sqlstr="UPDATE user"+tablename +" SET "+" filename = \""+values[0]+"\"" +", location = \""+values[2]+"\"" +", contain = \""+values[3]+"\"" +" WHERE "+" time = \"" + key+"\""; try { db.execSQL(sqlstr); return true; } catch (Exception e) { // TODO: handle exception return false; } } // 查询数据,返回List<HashMap<String, String>> public List<HashMap<String, String>> QueryData(String tablename) { List<HashMap<String, String>> datalist = new ArrayList<HashMap<String, String>>(); SQLiteDatabase db = dbHelper.getReadableDatabase(); String sqlstr = "SELECT * FROM user" + tablename; Cursor cursor = db.rawQuery(sqlstr, null); while (cursor.moveToNext()) { HashMap<String, String> data = new HashMap<String, String>(); data.put("filename", cursor.getString(cursor.getColumnIndex("filename"))); data.put("time", cursor.getString(cursor.getColumnIndex("time"))); data.put("location", cursor.getString(cursor.getColumnIndex("location"))); data.put("contain", cursor.getString(cursor.getColumnIndex("contain"))); datalist.add(data); } return datalist; } }
//有时间再写
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories