Android SQLite的使用

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>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值