Android SQLite的使用

来源:互联网 发布:php m常用数组函数 编辑:程序博客网 时间:2024/05/17 08:41

SQLite Android中的数据库,用于数据存储。 一下是基本用法。



一、 SQLiteOpenHelper类:


使用数据库,必须要继承自sqliteopenhelper类


public class Db extends SQLiteOpenHelper {public Db(Context context) {super(context, "db", null, 1); // “1”是版本号,用于数据库更新时的标记。}@Overridepublic void onCreate(SQLiteDatabase arg0) {arg0.execSQL("create table user("+ "_id integer primary key autoincrement,"+ "name TEXT DEFAULT \"\"," + "sex TEXT DEFAULT \"\")"); // 创建一个表。 有_id列,name列,sex列。}@Overridepublic 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;@Overrideprotected 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。@Overridepublic 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() {@Overridepublic 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() {@Overridepublic 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() {// 刷新listviewCursor 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>


0 0
原创粉丝点击