mars_SQLite数据库
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"}); } }); } }