android 对sqlite数据库的增删改查
来源:互联网 发布:feeling软件 编辑:程序博客网 时间:2024/06/05 14:59
一、Android平台下数据库的一些概念
Sqlite是android平台的一款轻量级的、嵌入式的、关系型数据库产品,以下是一些主要概念。
1.Sqlite通过文件保存数据库,创建的数据库文件默认存在在/data/data//databases/的文件
夹下,一个文件就是一个数据库。
2.一个数据库包含多个表格,一个表格包含不同的字段,字段类型等等,这与SQL数据库相似。
3.Sqlite记录没有顺序的概念,不存在第一第二类的概念,通过查询获取满足条件的记录。
android平台下操作数据库的的相关类
(1.)SQLiteOpenHelper 抽象类,用于创建和管理数据库以及版本,需要创建一个子类继承,该类封装
了对数据库操作的基本方法,使用方便。
(2.)SQLiteDatabase 数据库访问了,主要是对数据库的增删改查等常用操作,功能比
SQLiteOpenHelper丰富,比如事务管理,分页等等。
(3.)Cursor游标类,主要用来返回返回查询记录结果
SQLiteOpenHelper 类使用方法比较少,网上介绍也比较多,本程序主要采用SQLiteDatabase类操作数
二、具体实例
1.DBSQLiteDao 类对数据库的增删改查进行封装
2.DBOpenHelper 继承自SQLiteOpenHelper,可在该类完成数据库表的创建
import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/** * Created by lenovo on 2016/3/16. */public class DBSQLiteDao { private DBOpenHelper helper = null; public DBSQLiteDao(Context context){ helper = new DBOpenHelper(context); } public boolean add(String table_name,ContentValues values){ boolean flags = false; SQLiteDatabase database = null; long id = -1; try { database = helper.getWritableDatabase(); id =database.insert(table_name,null,values);//表名 flags = (id!=-1?true:false); }catch (Exception e){ }finally { if(database!=null){ database.close(); } } return flags; } public boolean delete(String table_name,String whereClouse,String[]whereArgs){ boolean flag = false; SQLiteDatabase database = null; int count =0; try { database = helper.getWritableDatabase(); count = database.delete(table_name, whereClouse, whereArgs); flag = (count>0?true:false); }catch (Exception e){ }finally { if(database!=null){ database.close(); } } return flag; } public boolean update(String table_name,ContentValues values,String whereClouse,String[]whereArgs){ boolean flag = false; SQLiteDatabase database = null; int count =0; try{ database = helper.getWritableDatabase(); count = database.update(table_name, values, whereClouse, whereArgs); flag = (count>0?true:false); }catch (Exception e){ }finally { if(database!=null){ database.close(); } } return flag; } //查询单条记录 public Map<String,String> query(String table_name,String selection,String[]selectionArgs){ SQLiteDatabase database = null; Cursor cursor = null; Map<String,String> map = new HashMap<String ,String>(); try { database = helper.getReadableDatabase(); //查询单条记录 cursor = database.query(true, table_name, null, selection, selectionArgs, null, null, null, null); int cols_len = cursor.getColumnCount();//获取游标个数,即查询所获结果数目 while (cursor.moveToNext()){ for(int i=0;i<cols_len;i++){ String cols_name = cursor.getColumnName(i); String cols_values = cursor.getString(cursor.getColumnIndex(cols_name)); if(cols_values==null){ cols_values = ""; } map.put(cols_name,cols_values); } } }catch (Exception e){ e.printStackTrace(); } finally { if(database!=null){ database.close(); } } return map; } public List<Map<String,String>> getMapList(String table_name,String selelction,String[]selectionArgs){ SQLiteDatabase database = null; Cursor cursor = null; List<Map<String,String>>list = new ArrayList<>(); try { database = helper.getReadableDatabase(); cursor = database.query(false,table_name,null,selelction,selectionArgs,null,null,null,null); int cols_len = cursor.getColumnCount(); while (cursor.moveToNext()){ Map<String,String>map = new HashMap<String,String>(); for(int i=0;i<cols_len;i++){ String cols_name = cursor.getColumnName(i); String cols_values = cursor.getString(cursor.getColumnIndex(cols_name)); if(cols_values==null){ cols_values = ""; } map.put(cols_name,cols_values); } list.add(map); } }catch (Exception e){ e.printStackTrace(); }finally { if(database!=null){ database.close(); } } return list; }}
import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;/** * Created by lenovo on 2016/3/16. */public class DBOpenHelper extends SQLiteOpenHelper { private static String name ="SonicDatabase.db"; private static int version =1; public DBOpenHelper(Context context) { super(context, name, null, version); }//在这里我创建了三个表 @Override public void onCreate(SQLiteDatabase db) { String sql_mobile_operation = "create table mobile_operation(id integer primary key autoincrement,name varchar(255),packagename varchar(255),info varchar)"; db.execSQL(sql_mobile_operation);//完成数据库表的创建 String sql_sonic_operation = "create table sonic_operation(id integer primary key autoincrement,name varchar(255),info varchar)"; db.execSQL(sql_sonic_operation); String sql_connection = "create table connection(id integer primary key autoincrement,gesture_name varchar,record_name varchar(255))"; db.execSQL(sql_connection); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }}
阅读全文
0 0
- android 对sqlite数据库的增删改查
- android 对sqlite数据库的增删改查
- android 对sqlite数据库的增删改查
- 转:android 对sqlite数据库的增删改查
- android 对sqlite数据库的增删改查
- Android数据库的SQLite增删改查
- android SQLite数据库的增删改查
- android sqlite数据库的增删改查
- Android SQLite数据库的增删改查
- Android数据库Sqlite的增删改查
- 安卓中对SQLite数据库的增删改查
- Android对SQLite的"增删改查"——SQLiteDatabase
- 用Sqlite数据库来对Android页面的数据进行增删改查
- Android对SQLite数据库进行封装使用反射来进行表的增删改查
- 数据库:SQLite数据库的增删改查
- SQLite数据库---数据库的增删改查
- android sqlite数据库增删改查
- Android SQLite数据库增删改查
- python安装科学计算拓展库numpy失败原因及解决方案
- Python基础(六)- 函数
- 使用 IoC 反转控制的三种设计模式
- hihoCoder1044— 状态压缩·一(状压dp)
- python cookbook学习笔记十六:类和对象(1)
- android 对sqlite数据库的增删改查
- 明天的要看的知识
- freemaker 笔记
- Python3.X 爬虫实战(静态下载器与解析器)
- JavaScript 的void关键字
- 二分法查找
- 02,Lua 程序块
- 我录制的《Java优雅编程之道》视频教程,已经发布了
- PostgreSQL