android_sqlite开发入门

来源:互联网 发布:vb.net excel教程 编辑:程序博客网 时间:2024/05/01 16:20

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">  又好长时间没写微博。。这次要做一个需要本地数据库的软件,理所当然的用到了SqlLite。接下来简单介绍一下SQLite的使用。主要是怎样实现增删改查</span>

主要使用到的类是

1..SQLiteOpenHelper,这个类是一个数据库帮助类,帮助管理数据库的使用,是创建数据库的必须工具,

主要方法有:

getReadableDataBase();以及getWriteableDataBase();这两个方法可以获得数据库对象,也就是为数据库引用赋值。close();   可以关闭和数据库的连接

使用的方法是继承这个类,重载构造函数,一般是用一个Context对象就行,第二个参数置null,后面的就是数据库文件名和数据库的版本号了,在onCreate()里面执行建表的语句,注意要是想给数据库一些初始数据的话也可以写在那里,可以发现,就是调用了数据库对象执行sql语句的方法

这是一个使用实例

import android.content.Context;import android.database.DatabaseErrorHandler;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;import android.util.Log;public class DietDbHelper extends SQLiteOpenHelper {private final static String DB_NAME = "vegetable.db";// 菜谱表共四个字段, did 主键 id自增长 d_name// 菜谱的名字 d_type 菜谱的种类 d_vege 组成菜谱的菜private final String CREATE_TABLE = "create table diet("+ "did integer primary key autoincrement,"+ "d_name text not null,d_type text not null)";public final static String COLMUNS_ID = "did";public final static String COLMUNS_NAME = "d_name";public final static String COLMUNS_TYPE = "d_type";public DietDbHelper(Context context) {super(context, DB_NAME, null, 1);}@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL(CREATE_TABLE);Log.d("创建diet", "创建数据diet");db.execSQL("insert into diet values(0,'干烧芦笋','热菜')");}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// TODO Auto-generated method stub}}


2.SQLitedDataBase

主要方法有:

1.query(String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy,String limit);这个实现了查的操作,

table可以写成”表一,表二“这样的形式来实现多表查询,连接的句子卸载selection

selection指的是where部分的限制条件,注意不包含where这个单词

selectionArgs[] 用于指定参数,如前一个写的是id=?, ?为占位符,这个就可以写成new String[]{ "1" }表示id=1

2.insert(String table,String nullColumnHack,ContentValue value)

这个主要是首先生成一个ContentValue的对象,这个对象是一个键值对类型的变量

使用put方法将各种数据加入到这个对象中然后传进去作为插入的参数就行,主要是第二个参数,这是一个异常控制的参数,由于这个方法是将参数组织成sql语句,如果contentValue为空的话就是这样insert into table value() values();

底层的sqlite不允许插入空记录,所以当value为空的话就是insert into table value (nullColumnHack)values(null),这样,这个参数在你的value不为空的时候传null就行

3.delete(String table,String selection,String[] selectionArg)

这个就是删除,很简单,参数意思参照前面的query()

4.update(String table,ContentValue value,String selection,String[] selectionArg);

第二个参数是新值,其他还是参照前面

5.rawQuery(String sql,String [] selectionArg);

执行一个特定的sql语句,后面的参数是占位符的值

  从vogella上面看到的使用方法是

1.创建数据库帮助类,也就是继承SQLiteOpenHelper,在这个类里面创建描述这个数据库的主要属性,比如数据表的名字,各个表的字段名,这样写是为了在后面好直接用而不会出现写错这样的事

2.针对数据写实体类

3.DataSource类,这个类将这个数据库的操作全部封装起来了,想要对这个数据库进行操作就要实例化这个类,

主要属性是:helper对象,SQLiteDataBase对象,含有单个表全部属性的数组(一个表一个这样的数组)

构造函数:传入Context实例化helper

open()使用helper的getXXXableDataBase()来实例化数据库

close();helper的close(),每次执行完一个操作都要释放资源

技巧:写一些将Cursor转化成实体类的方法很有效

可以这样根据列名查数据

<span style="font-size:18px;">sb.append(cursor.getString(cursor.getColumnIndex("count")));</span>


0 0
原创粉丝点击