1 package com.example.mars_sqlite;
2
3 import android.content.Context;
4 import android.database.sqlite.SQLiteDatabase;
5 import android.database.sqlite.SQLiteDatabase.CursorFactory;
6 import android.database.sqlite.SQLiteOpenHelper;
7 /** DatabaseHelper作为一个访问SQLite的助手类,提供两个方面的功能
8 第一:getReadableDatabase(),getWritableDatabase()可以获得SQLiteDatabase对象,通过该对象对数据库进行操作
9 第二:提供了onCreatr()和onUpgrade()两个回调方法,允许我们在创建和升级数据库时进行自己的操作
10 */
11 public class DatabaseHelper extends SQLiteOpenHelper{
12 private static final int VERSION=1;//默认版本号
13 public DatabaseHelper(Context context, String name, CursorFactory factory,
14 int version) {
15 //必须通过super调用父类当中的构造函数
16 super(context, name, factory, version);
17 }
18 public DatabaseHelper(Context context, String name){
19 this(context, name, null, VERSION);
20 }
21 //该函数在第一次创建数据库的时候执行,实际上是在第一次得到SQLiteDatabase对象的时候执行
22 //执行getReadableDatabase(),getWritableDatabase()时会调用此方法
23 public void onCreate(SQLiteDatabase db) {
24 System.out.println("create a Database");
25 //execSQL函数用于执行SQL语句。 括号里面表示创建表 user为表名
26 db.execSQL("create table user(id int,name varchar(20))");
27 }
28 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
29 System.out.println("update a Database");//版本号变大会调用此方法
30 }
31
32 }
该类用于对数据库进行操作
package com.example.mars_sqlite;
import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
/*使用adb命令
使用Linux命令:adb shell
进入cd卡的命令:cd 文件名
例出所以文件:ls ls-l
打开数据库: sqlite3 数据库名
查看当前数据库有哪些表:.schema
查看数据:select *from user;(要加分号) user为表名
*/
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button create=(Button) findViewById(R.id.button1);//创建表
Button updata=(Button) findViewById(R.id.button2);//更新数据
Button insert=(Button) findViewById(R.id.button3);//插入数据
Button query=(Button) findViewById(R.id.button4);//查询数据
Button delete=(Button) findViewById(R.id.button5);//删除表
Button updata_database=(Button) findViewById(R.id.button6);//更新数据库表
create.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {//默认版本为1
DatabaseHelper dbHelper=new DatabaseHelper(MainActivity.this,"test_SQL");
//只有执行getReadableDatabase或者getWritableDatabase()方法才会创建数据库
dbHelper.getReadableDatabase();//如果版本比之前的低就会报错
}
});
updata_database.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {//版本更新 版本必须比之前的高才会执行
DatabaseHelper dbHelper=new DatabaseHelper(MainActivity.this,"test_SQL",null,4);
dbHelper.getReadableDatabase();//当版本比之前的高时就会调用onUpgrade方法
}
});
insert.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {//插入数据
DatabaseHelper dbHelper=new DatabaseHelper(MainActivity.this,"test_SQL",null,4);
SQLiteDatabase wDatabase = dbHelper.getWritableDatabase();
ContentValues values=new ContentValues();
values.put("id", 1);//通过键值对的形式存放数据
values.put("name", "zxhangsan");
wDatabase.insert("user",null, values);
}
});
updata.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {//更新数据(修改)
DatabaseHelper dbHelper=new DatabaseHelper(MainActivity.this,"test_SQL",null,4);//得到当前数据库的处理者对象
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values=new ContentValues();
values.put("name", "lisi");
db.update("user", values, "id=?", new String[]{"1"});//修改id=1的name为lisi
}
});
query.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {//查询当前数据库指定的表名的数据
DatabaseHelper dbHelper=new DatabaseHelper(MainActivity.this,"test_SQL",null,4);//得到当前数据库的处理者对象
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.query("user", new String[]{"id","name"}, "id=?", new String[]{"1"}, null, null, null);//光标
while(cursor.moveToNext()){//和集合的迭代器类似
String name=cursor.getString(cursor.getColumnIndex("name"));
//等价于cursor.getString(0);当前行的某列的值
String id=cursor.getString(cursor.getColumnIndex("id"));
System.out.println("查询:"+id+"--"+name);
}
}
});
delete.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {//删除表
DatabaseHelper dbHelper=new DatabaseHelper(MainActivity.this,"test_SQL",null,4);//得到当前数据库的处理者对象
SQLiteDatabase db = dbHelper.getReadableDatabase();
db.delete("user","id=?", new String[]{"1"});
}
});
}
}