安卓存储基本用法之SQLite存储

SQLite轻量级存储可以借助SQLiteOpenHelper类间接实现存储,也可以直接调用openOrCreatedatabase()函数创建数据库对象,执行sql命令。

本文讲述SQLiteOpenHelper实现方法,以备自己忘记。

 

1.创建一类DBOpenHelper继承SQLiteOpenHelper;

2.重载SQLiteOpenHelper中的方法,onCreate(),onUpgrade(),实现DBOpenHelper的构造方法,在onCreate()执行sql语句创建表。

3.在MainActivity中声明SQLiteDatabase对象和DBOpenHelper对象。

4.定义对数据操作的函数,在按钮的监听器中执行,需要调用getWritableDatabase才能创建数据表。。

 

第一步、第二步

package com.example.savings;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory; 
import android.database.sqlite.SQLiteOpenHelper;

public class DBOpenHelper extends SQLiteOpenHelper {
	/*	构造方法	*/
	public DBOpenHelper(Context context, String name, CursorFactory factory,
			int version) {
		super(context, name, factory, version);
	}

	private static final String DB_CREATE = "create table people ( id integer primary key autoincrement,name text not null,sex text not null) ";
	//重载onCreate
	@Override
	public void onCreate(SQLiteDatabase paramSQLiteDatabase) {
		paramSQLiteDatabase.execSQL(DB_CREATE);

	}
	//重载onUpgrade,应该更新数据库版本时用,还没有学。
	@Override
	public void onUpgrade(SQLiteDatabase paramSQLiteDatabase, int paramInt1,
			int paramInt2) {

	}

}

第三步、第四步

package com.example.savings;

import android.os.Bundle;
import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
	private TextView view;
	SQLiteDatabase db;
	DBOpenHelper dbOpenHelper;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// setContentView(R.layout.activity_main);
		Button newcreate = (Button) findViewById(R.id.button1);
		Button insert = (Button) findViewById(R.id.button2);
		Button updateButton = (Button) findViewById(R.id.button3);
		Button deleteButton = (Button) findViewById(R.id.button4);
		Button queryButton = (Button) findViewById(R.id.button5);
		view = (TextView) findViewById(R.id.textView1);
		newcreate.setOnClickListener(new createlistener());
		insert.setOnClickListener(new insertlistener());
		updateButton.setOnClickListener(new updatelistener());
		deleteButton.setOnClickListener(new deletelistener());
		queryButton.setOnClickListener(new querylistener());

	}
	/*	*为了简洁,我初始化运行这个returndb()	*/
	@Override
	protected void onStart() {
		// TODO Auto-generated method stub
		super.onStart();
		returndb();
	}

	/*	*需要调用getWritableDatabase()或者getReadableDatabase(),才能创建表,更新以及删除,查询数据。	*/                	public boolean returndb() {

		dbOpenHelper = new DBOpenHelper(MainActivity.this, "people.db", null, 1); //初始化
		db = dbOpenHelper.getWritableDatabase();
		if (db == null) {
			return false;
		} else
			return true;

	}
	//创建表
	class createlistener implements OnClickListener {

		@Override
		public void onClick(View paramView) {
			returndb();

		}

	}
	//插入数据使用contentValues容器,更新时也使用此容器,最后调用db.insert(, ,)确认。
	class insertlistener implements OnClickListener {

		@Override
		public void onClick(View paramView) {
			ContentValues values = new ContentValues();
			values.put("name", "小强");
			values.put("sex", "男");
			db.insert("people", null, values);

		}

	}
	//更新数据,可以按条件更新
	class updatelistener implements OnClickListener {

		@Override
		public void onClick(View paramView) {
			ContentValues values = new ContentValues();
			values.put("name", "小名");
			db.update("people", values, "name='小强'", null);

		}

	}
	//删除数据
	class deletelistener implements OnClickListener {

		@Override
		public void onClick(View paramView) {
			db.delete("people", "id=2", null);

		}

	}
	//查询数据 使用Cursor 调用cursor.moveToFirst 获取第一行数据,我获取全部数据是判断moveToNext()是否为真
	class querylistener implements OnClickListener {

		@Override
		public void onClick(View paramView) {
			Cursor cursor = db.query("people", new String[] { "id", "name",
					"sex" }, null, null, null, null, null);
			if (cursor == null) {
				view.setText("no 数据");
				return;
			}
			String msg = "";
			while (cursor.moveToNext()) {
				msg += "id:" + cursor.getInt(cursor.getColumnIndex("id")) + ",";
				msg += "name:"
						+ cursor.getString(cursor.getColumnIndex("name")) + ",";
				msg += "sex:" + cursor.getString(cursor.getColumnIndex("sex"))
						+ "\n";

			}
			view.setText(msg);

		}

	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}
}


xml文件为

<RelativeLayout 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" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="建立" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/button1"
        android:text="插入" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/button2"
        android:text="更新" />

    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/button3"
        android:text="删除" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="TextView" />

    <Button
        android:id="@+id/button5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/button4"
        android:text="查询" />

</RelativeLayout>


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值