SQLite Android中的数据库,用于数据存储。 一下是基本用法。
一、 SQLiteOpenHelper类:
使用数据库,必须要继承自sqliteopenhelper类
public class Db extends SQLiteOpenHelper {
public Db(Context context) {
super(context, "db", null, 1); // “1”是版本号,用于数据库更新时的标记。
}
@Override
public void onCreate(SQLiteDatabase arg0) {
arg0.execSQL("create table user("
+ "_id integer primary key autoincrement,"
+ "name TEXT DEFAULT \"\"," + "sex TEXT DEFAULT \"\")"); // 创建一个表。 有_id列,name列,sex列。
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
}
/**
* @param args
*/
public static void main(String[] args) {
}
}
二、 数据库的读写操作。
这是数据库的基本读写代码:
private Db db;
private SQLiteDatabase dbread, dbwrite;
Db db = new Db(this);
SQLiteDatabase dbWrite = db.getWritableDatabase();//写
ContentValues cValues =new ContentValues();
cValues.put("name", "小张");
cValues.put("sex", "男");
dbWrite.insert("user", null, cValues);
cValues =new ContentValues();
cValues.put("name", "小丽");
cValues.put("sex", "男");
dbWrite.insert("user", null, cValues);
dbWrite.close();
SQLiteDatabase dbreaDatabase = db.getReadableDatabase();//读
Cursor cursor=dbreaDatabase.query("user", null, null, null, null,
null, null);
while (cursor.moveToNext()) {
String nameStrinr.getSg =cursor.getString(cursor.getColumnIndex("name"));
String sexString =cursotring(cursor.getColumnIndex("sex"));
System.out.println(nameString+"+"+sexString);
}
三、用一个listview 用于显示数据库的内容,还有数据库的增删操作
public class MainActivity extends ActionBarActivity {
private ListView listView;
private EditText eTextname, eTextsex;
private Button btncommitButton;
private SimpleCursorAdapter adapter;
private Db db;
private SQLiteDatabase dbread, dbwrite;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
db = new Db(this);
dbread = db.getReadableDatabase();
dbwrite = db.getWritableDatabase();
Cursor cursor = dbread
.query("user", null, null, null, null, null, null);
// 数据库专用的listview
// adapter,第一个参数是列表样式,第二个是数据库cursor,第三第四个,是数据库的列项与listview的各项的对应。
// 这里的cursor先传null,然后在freshlistview里进行adapterchangecursor()来进行刷新操作。
adapter = new SimpleCursorAdapter(getApplicationContext(),
R.layout.item_listview, null, new String[] { "name", "sex" },
new int[] { R.id.tvName, R.id.tvSex });
listView.setAdapter(adapter);
freshlistview();
btncommitButton.setOnClickListener(new View.OnClickListener() {
// 两个editview进行数据库的写入,然后freshlistview。
@Override
public void onClick(View v) {
ContentValues cValues = new ContentValues();
cValues.put("name", eTextname.getText().toString());
cValues.put("sex", eTextsex.getText().toString());
dbwrite.insert("user", null, cValues);
freshlistview();
}
});
listView.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
final int arg2, long arg3) {
// listview 长按操作 删除数据库中的选中项目,然后freshlistview。
new AlertDialog.Builder(MainActivity.this).setTitle("提示")
.setMessage("删除吗").setNegativeButton("取消", null)
.setPositiveButton("确定", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
Cursor cursor = adapter.getCursor();
cursor.moveToPosition(arg2);
int itemID = cursor.getInt(cursor
.getColumnIndex("_id"));
dbwrite.delete("user", "_id=?",
new String[] { itemID + "" });
freshlistview();
}
}).show();
return true;
}
});
}
private void initView() {
listView = (ListView) findViewById(R.id.listview);
eTextname = (EditText) findViewById(R.id.etname);
eTextsex = (EditText) findViewById(R.id.etsex);
btncommitButton = (Button) findViewById(R.id.btnCommit);
}
private void freshlistview() {
// 刷新listview
Cursor cursor = dbread
.query("user", null, null, null, null, null, null);
adapter.changeCursor(cursor);
}
}
xml文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.lb.lb4_29_sqlite.MainActivity" >
<ListView
android:id="@+id/listview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >
</ListView>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="name:" />
<EditText
android:id="@+id/etname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="sex:" />
<EditText
android:id="@+id/etsex"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="提交"
android:id="@+id/btnCommit"/>
</LinearLayout>
</LinearLayout>