注:className代表任意类名,databaseName指任意数据库名,object代表例化的对象
首先,手机没Root不能查看数据库文件,仿真可以
Sqlite数据库,查询语句用标准的SQL语法就可以,INSERT,UPDATA等
public class className1 extends SQLiteOpenHelper{//必须继承SQLiteOpenHelper类
private static final int VERSION = 1;//这个是版本,1,2,3等
private static final String FLAG="className";//这个是Log的标签,直接用类名
public className1(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
}
public className1(Context context,String name){
this(context,name,VERSION);
}
public className1(Context context,String name,int version){
this(context, name,null,version);
}
//以上三个构造函数固定的不用改
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "create table test(id int,name varchar(20))";//创建一个表,SQL语句可以自己定制
db.execSQL(sql);//执行Sql语句的格式
Log.i(FLAG,"创建数据库成功,自动生成表成功!");//Log打印信息
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {//这个不用管
Log.i(FLAG,"更新数据库成功!");<span style="font-family: Arial, Helvetica, sans-serif;">//Log打印信息</span>
}
把上面的单独作为一个类(三个固定的构造函数,一个创建表,一个不用管)你需要做的就是改动OnCreate里的SQL建表语句
在一个新的类里写上
new className1(this,"databaseName");
这样一个名为databaseName的带有test表的数据库就建好了
注意onCreate里的建表语句只有第一次创建数据库时才会执行,以后想要建新表可以用SQL语句
数据库只两种类型的语句
1,执行,2,查询
<pre name="code" class="java">className1 object = new className1(this,"databaseName");//例化一个object对象//每次要用到执行或者查询都写一次//databaseName写你要操作的数据库名
Cursor cursor = object.getReadableDatabase().rawQuery("SQL查询语句");//查询语句就是SELECT
getReadableDatabase().execSQL("SQL执行语句");//执行语句就是建表,INSERT,UPDATA等
也就是说如果你想建新表,更新字段,插入等操作你一共需要写两句话查询会查出数据,也是写两句话,但是查询出的数据还需要处理,要多几句话,下面说查出来的数据怎么处理主要就是对cursor处理
<pre name="code" class="java">private static final String FLAG="className";//这个是Log的标签,直接用类名
while(cursor.moveToNext())
{
Log.i(FLAG,cursor.getString(0)); //getString里面是每条记录的字段索引,可以根据字段数目更换值
}
读取数据一共需要一个while和一句话