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"});
            }
        });
    }
}

 

 

posted @ 2016-04-15 16:47  ts-android  阅读(208)  评论(0编辑  收藏  举报