一、 SQLite介绍
SQLite是android内置的一个很小的关系型数据库。
SQLite的官网是http://www.sqlite.org/,可以去下载一些文档或相关信息。
博客中有一篇有稍微详细一点的介绍,大家可以去看一下。
二、 SQLiteOpenHelper的使用方法
SQLiteOpenHelper是一个辅助类来管理数据库的创建和版本。
可以通过继承这个类,实现它的一些方法来对数据库进行一些操作。
所有继承了这个类的类都必须实现下面这样的一个构造方法:
public DatabaseHelper(Context context, String name, CursorFactory factory, int version)
第一个参数:Context类型,上下文对象。
第二个参数:String类型,数据库的名称
第三个参数:CursorFactory类型
第四个参数:int类型,数据库版本
下面是这个类的几个方法:
方法名 返回类型 描述 备注
getReadableDatabase() synchronized SQLiteDatabase 创建或打开一个数据库 可以通过这两个方法返回的SQLiteDatabase对象对数据库进行一系列的操作,如新建一个表,插入一条数据等
getWritableDatabase() synchronized SQLiteDatabase 创建或打开一个可以读写的数据库
onCreate(SQLiteDatabase db) abstract void 第一次创建的时候调用
onOpen(SQLiteDatabase db) void 打开数据库
onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion) abstract void 升级数据库
close() synchronized void 关闭所有打开的数据库对象
下面有一个例子,当点击按钮时进行相应的操作,效果图如下:
介于代码中有详细备注了,在此我就不多写了,直接贴代码了,代码如下:
DatabaseHelper类:
-
packageandroid.sqlite;
-
-
importandroid.content.Context;
-
importandroid.database.sqlite.SQLiteDatabase;
-
importandroid.database.sqlite.SQLiteOpenHelper;
-
importandroid.database.sqlite.SQLiteDatabase.CursorFactory;
-
-
-
-
-
-
-
publicclassDatabaseHelperextendsSQLiteOpenHelper{
-
privatestaticfinalintVERSION=1;
-
-
-
-
-
-
-
-
-
publicDatabaseHelper(Contextcontext,Stringname,CursorFactoryfactory,
-
intversion){
-
-
super(context,name,factory,version);
-
}
-
-
publicDatabaseHelper(Contextcontext,Stringname,intversion){
-
this(context,name,null,version);
-
}
-
-
publicDatabaseHelper(Contextcontext,Stringname){
-
this(context,name,VERSION);
-
}
-
-
-
@Override
-
publicvoidonCreate(SQLiteDatabasedb){
-
-
System.out.println("createadatabase");
-
-
db.execSQL("createtableuser(idint,namevarchar(20))");
-
}
-
-
@Override
-
publicvoidonUpgrade(SQLiteDatabasearg0,intarg1,intarg2){
-
-
System.out.println("upgradeadatabase");
-
}
-
}
Activity类:
-
packageandroid.sqlite;
-
-
importandroid.app.Activity;
-
importandroid.content.ContentValues;
-
importandroid.database.Cursor;
-
importandroid.database.sqlite.SQLiteDatabase;
-
importandroid.os.Bundle;
-
importandroid.view.View;
-
importandroid.view.View.OnClickListener;
-
importandroid.widget.Button;
-
-
publicclassSQLiteActivityextendsActivity{
-
-
privateButtoncreateDatabaseButton=null;
-
privateButtonupdateDatabaseButton=null;
-
privateButtoninsertButton=null;
-
privateButtonupdateButton=null;
-
privateButtonselectButton=null;
-
privateButtondeleteButton=null;
-
-
@Override
-
publicvoidonCreate(BundlesavedInstanceState){
-
super.onCreate(savedInstanceState);
-
setContentView(R.layout.main);
-
-
createDatabaseButton=(Button)findViewById(R.id.createDatabase);
-
updateDatabaseButton=(Button)findViewById(R.id.updateDatabase);
-
insertButton=(Button)findViewById(R.id.insert);
-
updateButton=(Button)findViewById(R.id.update);
-
selectButton=(Button)findViewById(R.id.select);
-
deleteButton=(Button)findViewById(R.id.delete);
-
-
createDatabaseButton
-
.setOnClickListener(newCreateDatabaseOnClickListener());
-
updateDatabaseButton
-
.setOnClickListener(newUpdateDatabaseOnClickListener());
-
insertButton.setOnClickListener(newInsertOnClickListener());
-
updateButton.setOnClickListener(newUpdateOnClickListener());
-
selectButton.setOnClickListener(newSelectOnClickListener());
-
deleteButton.setOnClickListener(newDeleteOnClickListener());
-
}
-
-
-
classCreateDatabaseOnClickListenerimplementsOnClickListener{
-
publicvoidonClick(Viewv){
-
-
DatabaseHelperdbHelper=newDatabaseHelper(SQLiteActivity.this,
-
"test_yangyz_db");
-
-
SQLiteDatabasesqliteDatabase=dbHelper.getReadableDatabase();
-
}
-
}
-
-
-
classUpdateDatabaseOnClickListenerimplementsOnClickListener{
-
publicvoidonClick(Viewv){
-
-
DatabaseHelperdbHelper=newDatabaseHelper(SQLiteActivity.this,
-
"test_yangyz_db",2);
-
-
SQLiteDatabasesqliteDatabase=dbHelper.getReadableDatabase();
-
}
-
-
}
-
-
-
classInsertOnClickListenerimplementsOnClickListener{
-
publicvoidonClick(Viewv){
-
-
ContentValuesvalues=newContentValues();
-
-
values.put("id",1);
-
values.put("name","yangyz");
-
-
DatabaseHelperdbHelper=newDatabaseHelper(SQLiteActivity.this,
-
"test_yangyz_db",2);
-
-
SQLiteDatabasesqliteDatabase=dbHelper.getWritableDatabase();
-
-
-
-
-
sqliteDatabase.insert("user",null,values);
-
}
-
}
-
-
-
classUpdateOnClickListenerimplementsOnClickListener{
-
publicvoidonClick(Viewv){
-
-
DatabaseHelperdbHelper=newDatabaseHelper(SQLiteActivity.this,
-
"test_yangyz_db",2);
-
-
SQLiteDatabasesqliteDatabase=dbHelper.getWritableDatabase();
-
-
ContentValuesvalues=newContentValues();
-
values.put("name","zhangsan");
-
-
-
-
-
-
sqliteDatabase.update("user",values,"id=?",newString[]{"1"});
-
System.out.println("-----------update------------");
-
}
-
}
-
-
-
classSelectOnClickListenerimplementsOnClickListener{
-
publicvoidonClick(Viewv){
-
Stringid=null;
-
Stringname=null;
-
-
DatabaseHelperdbHelper=newDatabaseHelper(SQLiteActivity.this,
-
"test_yangyz_db",2);
-
-
SQLiteDatabasesqliteDatabase=dbHelper.getReadableDatabase();
-
-
-
-
-
-
-
-
-
Cursorcursor=sqliteDatabase.query("user",newString[]{"id",
-
"name"},"id=?",newString[]{"1"},null,null,null);
-
-
while(cursor.moveToNext()){
-
id=cursor.getString(cursor.getColumnIndex("id"));
-
name=cursor.getString(cursor.getColumnIndex("name"));
-
}
-
System.out.println("-------------select------------");
-
System.out.println("id:"+id);
-
System.out.println("name:"+name);
-
}
-
}
-
-
-
classDeleteOnClickListenerimplementsOnClickListener{
-
publicvoidonClick(Viewv){
-
-
DatabaseHelperdbHelper=newDatabaseHelper(SQLiteActivity.this,"test_yangyz_db",2);
-
-
SQLiteDatabasesqliteDatabase=dbHelper.getWritableDatabase();
-
-
-
-
-
sqliteDatabase.delete("user","id=?",newString[]{"1"});
-
System.out.println("----------delete----------");
-
}
-
}
-
}
布局文件:
-
<?xmlversion="1.0"encoding="utf-8"?>
-
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
-
android:orientation="vertical"
-
android:layout_width="fill_parent"
-
android:layout_height="fill_parent"
-
>
-
<TextView
-
android:layout_width="fill_parent"
-
android:layout_height="wrap_content"
-
android:text="@string/hello"
-
/>
-
-
<Button
-
android:id="@+id/createDatabase"
-
android:layout_width="fill_parent"
-
android:layout_height="wrap_content"
-
android:text="@string/createDatabaseButton"
-
/>
-
-
<Button
-
android:id="@+id/updateDatabase"
-
android:layout_width="fill_parent"
-
android:layout_height="wrap_content"
-
android:text="@string/updateDatabaseButton"
-
/>
-
-
<Button
-
android:id="@+id/insert"
-
android:layout_width="fill_parent"
-
android:layout_height="wrap_content"
-
android:text="@string/insertButton"
-
/>
-
-
<Button
-
android:id="@+id/update"
-
android:layout_width="fill_parent"
-
android:layout_height="wrap_content"
-
android:text="@string/updateButton"
-
/>
-
-
<Button
-
android:id="@+id/select"
-
android:layout_width="fill_parent"
-
android:layout_height="wrap_content"
-
android:text="@string/selectButton"
-
/>
-
-
<Button
-
android:id="@+id/delete"
-
android:layout_width="fill_parent"
-
android:layout_height="wrap_content"
-
android:text="@string/deleteButton"
-
/>
-
</LinearLayout>
String文件:
-
<?xmlversion="1.0"encoding="utf-8"?>
-
<resources>
-
<stringname="hello">HelloWorld,SQLiteActivity!</string>
-
<stringname="app_name">SQLiteTest</string>
-
<stringname="createDatabaseButton">createDatabase</string>
-
<stringname="updateDatabaseButton">updateDatabase</string>
-
<stringname="insertButton">insert</string>
-
<stringname="updateButton">update</string>
-
<stringname="selectButton">select</string>
-
<stringname="deleteButton">delete</string>
-
</resources>
项目源码已上传,有需要的可下载。
分享到:
相关推荐
android sqlite 使用详解 带源码讲解
Android Sqlite使用详解,增删改查详细解析
Android SQLite使用的三个demo
android sqlite使用demo 代码主要包括sqlite使用中表的建立,表的升级,对于表的操作,增删改查等
android sqlite的使用方法
本程序是一个SQLite的规范使用示例,程序涉及到: SQLite 增、删、改、查、SQL版本更新,ListView创建条目生成,单个条目点击事件处理,程序中通过Junit来实现单元测试。
一个简单的Android SQLite ORM框架不想花资源分的同学可以上我的github主页下载:https://github.com/chenyihan/Simple-SQLite-ORM-Android,因为要传到github,所以代码中的注释和doc文档都是英文的,对自己英文不...
Android Sqlite使用demo
Android 数据库SQLite 详解,简单学好SQLite
在android 中使用sqlite ,如何创建数据库,实现对数据库的访问,实现数据的增删,查改。
android sqlite可视化工具,可以导入新建数据这个数据库里
关于Android SQLite的基本操作,留作以后使用
NULL 博文链接:https://ghostfromheaven.iteye.com/blog/976680
android sqlite示例代码
开源的android sqlite数据操作工具类。
SQlite Android SQLite的应用 简易的学生成绩管理系统 1.用到类似表单的界面。界面美观清晰。 2.搭建ListView WIdget组件。单击列表项即可对其删除修改。 3.实现了对学生信息的增,删,改,查。
SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,您...SQLite 使用 ANSI-C 编写的,并提供了简单和易于使用的 API。
验证android sqlite数据库insert 和delete 方法返回值的具体规律 insert 插入一行,如果当前最大id是4,insert新的一条记录id是5 ,如果把5删除, 在insert一条新的记录id还是5,如果删除的是id为4的记录, 再新增一...
sqlite-android一个Android SQLite支持库
Android 在运行时集成了 SQLite,所以每个 Android 应用程序都可以使用 SQLite 数据库。对数熟悉 SQL 的开发人员来时,使用 SQLite 相当简单。可以,由于 JDBC 不适合手机这种内存受限设备,所以 Android 开发人员...