您的位置:首页 > 数据库

简单SQLite的使用

2016-02-17 19:50 691 查看
简单描述一下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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: