android 轻量级数据库sqlite入门

SQLite 的基本介绍:

一.SQLite数据库

    1.SQLite数据库的特点
        安卓手机自带, 小巧, 适合在手机中使用
        不区分数据类型(主键除外)
        SQL语句和MySQL几乎相同
        SQLite不使用JDBC连接, 使用的是Android自有的API
        每个数据库对应一个文件
二,Sqlite 数据库的创建:
   方法 1
        1 定义类继SQLiteOpenHelper,实现OnCreate()方法和OnUpgrade()方法
        2   用SQLiteOpenHelper的getWritableDatabse()或者getReadableDatabse()的方法来得到一个SQLitedatabase的实例,然后操作数据SQlite数据库
   方法2
        使用 SQLitedatabase的openorcreateDatabase(File f,Cursor c)方法来实例化一个对象
但是需要指定一个路径
三    对数据库操作的方法也有两种以插入为列
    方法1
       ContentValue c=new ConValue();
       c.put ("id",1);
        db.insert("表名",null,c);
    由Sqllitedatabase提供的insert方法,不需要熟悉Sql的语法
    方法2
      db.execSQL("insert into dict values(null,?,?)",new String[] {"123",sb")};
      使用sql语法

    execSQL()方法可以进行增删改操作
        rawQuery()执行查询操作, 得到Cursor, 调用moveToNext()判断是否包含数据, 调用getString(), getInt()等方法获取数据

        insert(), delete(), update(), query() 四个方法内部也是调用execSQL()和rawQuery()的, 它们在ContentProvider中使用更方便


SQLIte的基本操作:

sqlite的一些模板
package com.example.hncta.sqlite;

import com.example.hncta.sqlite.StuDBHelper;

import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
/*
* @author lingdududu
*/
public class SQLiteActivity extends Activity {
    /** Called when the activity is first created. */
//
    private Button createBtn;
    private Button insertBtn;
    private Button updateBtn;
    private Button queryBtn;
    private Button deleteBtn;
    private Button ModifyBtn;
   // @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

//调用creatView方法
      //  creatView();
//setListener方法
        //setListener();
    }

    //通过findViewById获得Button对象的方法
    private void creatView(){
        createBtn = (Button)findViewById(R.id.createDatabase);
        updateBtn = (Button)findViewById(R.id.updateDatabase);
        insertBtn = (Button)findViewById(R.id.insert);
        ModifyBtn = (Button)findViewById(R.id.update);
        queryBtn = (Button)findViewById(R.id.query);
        deleteBtn = (Button)findViewById(R.id.delete);
    }

    //为按钮注册监听的方法
    private void setListener(){
        createBtn.setOnClickListener(new CreateListener());
        updateBtn.setOnClickListener(new UpdateListener());
        insertBtn.setOnClickListener(new InsertListener());
        ModifyBtn.setOnClickListener(new ModifyListener());
        queryBtn.setOnClickListener(new QueryListener());
        deleteBtn.setOnClickListener(new DeleteListener());
    }

    //创建数据库的方法
    class CreateListener implements OnClickListener{

        @Override
        public void onClick(View v) {
//创建StuDBHelper对象
            StuDBHelper dbHelper = new StuDBHelper(SQLiteActivity.this,"stu_db",null,1);
//得到一个可读的SQLiteDatabase对象
            SQLiteDatabase db =dbHelper.getReadableDatabase();
        }
    }

    //更新数据库的方法
    class UpdateListener implements OnClickListener{

        @Override
        public void onClick(View v) {
// 数据库版本的更新,由原来的1变为2
            StuDBHelper dbHelper = new StuDBHelper(SQLiteActivity.this,"stu_db",null,2);
            SQLiteDatabase db =dbHelper.getReadableDatabase();
        }
    }

    //插入数据的方法
    class InsertListener implements OnClickListener{

        @Override
        public void onClick(View v) {

            StuDBHelper dbHelper = new StuDBHelper(SQLiteActivity.this,"stu_db",null,1);
//得到一个可写的数据库
            SQLiteDatabase db =dbHelper.getWritableDatabase();

//生成ContentValues对象 //key:列名,value:想插入的值
            ContentValues cv = new ContentValues();
//往ContentValues对象存放数据,键-值对模式
            cv.put("id", 1);
            cv.put("sname", "xiaoming");
            cv.put("sage", 21);
            cv.put("ssex", "male");
//调用insert方法,将数据插入数据库
            db.insert("stu_table", null, cv);
//关闭数据库
            db.close();
        }
    }

    //查询数据的方法
    class QueryListener implements OnClickListener{

        @Override
        public void onClick(View v) {

            StuDBHelper dbHelper = new StuDBHelper(SQLiteActivity.this,"stu_db",null,1);
//得到一个可读的数据库
            SQLiteDatabase db =dbHelper.getReadableDatabase();
//参数1:表名
//参数2:要想显示的列
//参数3:where子句
//参数4:where子句对应的条件值
//参数5:分组方式
//参数6:having条件
//参数7:排序方式
            Cursor cursor = db.query("stu_table", new String[]{"id","sname","sage","ssex"}, "id=?", new String[]{"1"}, null, null, null);
            while(cursor.moveToNext()){
                String name = cursor.getString(cursor.getColumnIndex("sname"));
                String age = cursor.getString(cursor.getColumnIndex("sage"));
                String sex = cursor.getString(cursor.getColumnIndex("ssex"));
                System.out.println("query------->" + "姓名:"+name+" "+"年龄:"+age+" "+"性别:"+sex);
            }
//关闭数据库
            db.close();
        }
    }

    //修改数据的方法
    class ModifyListener implements OnClickListener{

        @Override
        public void onClick(View v) {

            StuDBHelper dbHelper = new StuDBHelper(SQLiteActivity.this,"stu_db",null,1);
//得到一个可写的数据库
            SQLiteDatabase db =dbHelper.getWritableDatabase();
            ContentValues cv = new ContentValues();
            cv.put("sage", "23");
//where 子句 "?"是占位符号,对应后面的"1",
            String whereClause="id=?";
            String [] whereArgs = {String.valueOf(1)};
//参数1 是要更新的表名
//参数2 是一个ContentValeus对象
//参数3 是where子句
            db.update("stu_table", cv, whereClause, whereArgs);
        }
    }

    //删除数据的方法
    class DeleteListener implements OnClickListener{

        @Override
        public void onClick(View v) {

            StuDBHelper dbHelper = new StuDBHelper(SQLiteActivity.this,"stu_db",null,1);
//得到一个可写的数据库
            SQLiteDatabase db =dbHelper.getReadableDatabase();
            String whereClauses = "id=?";
            String [] whereArgs = {String.valueOf(2)};
//调用delete方法,删除数据
            db.delete("stu_table", whereClauses, whereArgs);
        }
    }
}

SQliteopenhelper:

package com.example.hncta.sqlite;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

 class StuDBHelper extends SQLiteOpenHelper {

    private static final String TAG = "TestSQLite";
    public static final int VERSION = 1;

    //必须要有构造函数
    public StuDBHelper(Context context, String name, CursorFactory factory,
                       int version) {
        super(context, name, factory, version);
    }

    // 当第一次创建数据库的时候,调用该方法,在建数据库的同时建立了数据表
    public void onCreate(SQLiteDatabase db) {
        String sql = "create table stu_table(id int,sname varchar(20),sage int,ssex varchar(10))";
//输出创建数据库的日志信息
        Log.i(TAG, "create Database------------->");
        Log.i(TAG,"正在创建数据库中的表");


//execSQL函数用于执行SQL语句
        db.execSQL(sql);
    }

    //当更新数据库的时候执行该方法
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//输出更新数据库的日志信息
        Log.i(TAG, "update Database------------->");
        System.out.println("数据库的版本正在由"+oldVersion+"升级到"+newVersion);
    }
}





猜你喜欢

转载自blog.csdn.net/Warkey1998/article/details/77657784