简单SQLite的使用

简单描述一下Android SQLite的使用方法

第一步,创建一个Db类,该类继承字SQLiteOpenHelper,该类中与Activity一样,有一个onCreate方法,会在new的时候执行,我们在这里创建一张名为user的表,代码:

String test = "create table user("
+ "_id INTEGER PRIMARY KEY AUTOINCREMENT,"
+ "name TEXT DEFAULT \"\","
+ "sex TEXT DEFAULT \"\")";
该类会在使用它 的类中创建一张表user

第二步创建Activity,初始化

db = new Db(this);
dbReader = db.getReadableDatabase();
dbWriter = db.getWritableDatabase();
获得数据库对象并通过该对象获得读写数据库的对象

向数据库写入一条数据

ContentValues cv = new ContentValues();
cv.put("name", nameEditText.getText().toString());
cv.put("sex", sexEditText.getText().toString());
dbWriter.insert("user", null, cv);
从数据库读取数据

c = dbReader.query("user", null, null, null, null, null, null);
其中c为游标Cursor类,获得数据后把数据塞进SimpleCursorAdapter中:
adapter = new SimpleCursorAdapter(this, R.layout.test_sqlite_item, c, new String[]{"name", "sex"}, new int[]{R.id.name, R.id.sex})


package com.example.huanghanqing.testsqlite;

import android.annotation.SuppressLint;
import android.content.Context;
import android.database.DatabaseErrorHandler;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
 * Created by huanghanqing on 2016/2/16.
 */
public class Db extends SQLiteOpenHelper {
    public Db(Context context) {
        super(context, "db", null, 1);
        // TODO Auto-generated constructor stub
    }

    @SuppressLint("NewApi")
    public Db(Context context, String name, SQLiteDatabase.CursorFactory factory, int version,
              DatabaseErrorHandler errorHandler) {
        super(context, name, factory, version, errorHandler);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(SQLiteDatabase db) {

            String test = "create table user("
            + "_id INTEGER PRIMARY KEY AUTOINCREMENT,"
            + "name TEXT DEFAULT \"\","
            + "sex TEXT DEFAULT \"\")";
            db.execSQL(test);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}
package com.example.huanghanqing.testsqlite;


import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.support.v4.widget.SimpleCursorAdapter;
import android.app.Activity;
import android.app.LauncherActivity.ListItem;
import android.app.ListActivity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.os.Build;

public class MainActivity extends ListActivity {

    private Db db;
    EditText nameEditText;
    EditText sexEditText;
    Button add;
    SQLiteDatabase dbWriter;
    SQLiteDatabase dbReader;
    SimpleCursorAdapter adapter;
    Cursor c;
    ListView listView;

    @SuppressWarnings("deprecation")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        db = new Db(this);
        dbReader = db.getReadableDatabase();
        dbWriter = db.getWritableDatabase();

        nameEditText = (EditText) findViewById(R.id.editTextName);
        sexEditText = (EditText) findViewById(R.id.editTextSex);
        add = (Button) findViewById(R.id.add);
        //listView = (ListView)findViewById(R.id.listView1);
        c = dbReader.query("user", null, null, null, null, null, null);
        adapter = new SimpleCursorAdapter(this, R.layout.test_sqlite_item, c, new String[]{"name", "sex"}, new int[]{R.id.name, R.id.sex});
        setListAdapter(adapter);
        add.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                ContentValues cv = new ContentValues();
                cv.put("name", nameEditText.getText().toString());
                cv.put("sex", sexEditText.getText().toString());
                dbWriter.insert("user", null, cv);
                refresh();
            }
        });
        getListView().setOnItemLongClickListener(new OnItemLongClickListener() {

            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View view,
                                           int position, long id) {
                // TODO Auto-generated method stub
                return false;
            }
        });
    }

    public void refresh() {
        c = dbReader.query("user", null, null, null, null, null, null);
        adapter.changeCursor(c);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值