Android 使用Sqlite

如何使用

  • 继承SQLiteOpenHelper,通过SQLiteOpenHelper可以方便的管理SQLiteDatabase

public class MyDataBaseHelper extends SQLiteOpenHelper {
    public final static String CREATE_TABLE_SQL="create table dict (_id integer primary key autoincrement,word text,detail text)";

    public MyDataBaseHelper(Context context, String name, int version) {
        super(context, name, null, version);
    }
    @Override
    public void onCreate(SQLiteDatabase db) {
//        第一次使用数据库是自动建表
        db.execSQL(CREATE_TABLE_SQL);
    }
/**
 * 升级数据是调用
 */
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}
  • 获取可写数据库:SQLiteDatabase database=databaseHelper.getWritableDatabase();
  • 获取可读数据库: SQLiteDatabase db=databaseHelper.getReadableDatabase();

执行SQL语句

db.executeSQL(String sql); 
db.executeSQL(String sql, Object[] bindArgs);//sql语句中使用占位符,然后第二个参数是实际的参数集  

insert

db.insert(String table, String nullColumnHack, ContentValues values);  
  • 第一个参数都是表示要操作的表名;insert中的第二个参数表示强行插入null值的数据列的列名,当values参数为空或不含任何key-value对时该参数有效;insert中的第三个参数是ContentValues类型的变量,是键值对组成的Map,key代表列名,value代表该列要插入的值;插入方法执行后会返回新添记录的行号,该行号是一个内部值,与主键id无关,发生错误返回-1;
  • 通过SQL语句也可实现:比如:db.execSQL("insert into news_info values(null,?,?)",new String[]{title,content})

update

db.update(String table, Contentvalues values, String whereClause, String whereArgs);  
  • table:表名
  • values: 想更新的数据
  • whereClause:满足whereClause子句的记录将会被更新
  • whereArgs: 用于为whereClause子句传入参数

int result=db.update("news_info",values,"_id>?",new Integer[]{20});

delete

db.delete(String table, String whereClause, String whereArgs);
  • table: 表名
  • whereClause:满足whereClause子句的记录将会被删除
  • whereArgs: 用于为whereClause子句传入参数

query

db.rawQuery(String sql, String[] selectionArgs);  
db.query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy);  
db.query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit);  
db.query(String distinct, String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderB

上面几种都是常用的查询方法,第一种最为简单,将所有的SQL语句都组织到一个字符串中,使用占位符代替实际参数,selectionArgs就是占位符实际参数集;下面的几种参数都很类似,columns表示要查询的列所有名称集selection表示WHERE之后的条件语句,可以使用占位符groupBy指定分组的列名having指定分组条件,配合groupBy使用,orderBy指定排序的列名limit指定分页参数distinct可以指定“true”或“false”表示要不要过滤重复值。需要注意的是,selection、groupBy、having、orderBy、limit这几个参数中不包括“WHERE”、“GROUP BY”、“HAVING”、“ORDER BY”、“LIMIT”等SQL关键字。
最后,他们同时返回一个Cursor对象,代表数据集的游标,有点类似于JavaSE中的ResultSet。

Cursor

c.move(int offset); //以当前位置为参考,移动到指定行  
c.moveToFirst();    //移动到第一行  
c.moveToLast();     //移动到最后一行  
c.moveToPosition(int position); //移动到指定行  
c.moveToPrevious(); //移动到前一行  
c.moveToNext();     //移动到下一行  
c.isFirst();        //是否指向第一条  
c.isLast();     //是否指向最后一条  
c.isBeforeFirst();  //是否指向第一条之前  
c.isAfterLast();    //是否指向最后一条之后  
c.isNull(int columnIndex);  //指定列是否为空(列基数为0)  
c.isClosed();       //游标是否已关闭  
c.getCount();       //总数据项数  
c.getPosition();    //返回当前游标所指向的行数  
c.getColumnIndex(String columnName);//返回某列名对应的列索引值  
c.getString(int columnIndex);   //返回当前行指定列的值  
优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/628896

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。