Sqlite

本文通过具体示例介绍了如何在 Android 应用中使用 SQLite 进行数据的增删改查操作,并对比了两种不同的实现方式。
<pre class="html" name="code">package com.example.db;

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

public class MySqliteOpenHelper extends SQLiteOpenHelper {
//创建数据库
	public MySqliteOpenHelper(Context context) {
		super(context, "student5.db", null, 1);
	}

	@Override
	public void onCreate(SQLiteDatabase db) {

		db.execSQL("create table student5(_id integer primary key autoincrement,name,age,sex,add)");
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

	}
}


package com.example.db;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

public class db {

	private MySqliteOpenHelper helper;
	private SQLiteDatabase db;
	private SQLiteDatabase writableDatabase;

	public db(Context context) {
		helper = new MySqliteOpenHelper(context);
	}

	// 第一种写法
	public void add(String name, String age, String sex) {
		db = helper.getWritableDatabase();
		ContentValues values = new ContentValues();
		values.put("name", name);
		values.put("age", age);
		values.put("sex", sex);
		db.insert("student5", null, values);
		db.close();
	}

	public void delete(String name) {
		db = helper.getWritableDatabase();
		db.delete("student5", "name=?", new String[] { name });
		db.close();
	}

	public void update(String name, String sex) {
		db = helper.getWritableDatabase();
		ContentValues values = new ContentValues();
		values.put("sex", sex);
		db.update("student5", values, "name=?", new String[] { name });
		db.close();
	}

	public String query() {
		db = helper.getWritableDatabase();
		Cursor query = db.query("student5", null, null, null, null, null, null);
		while (query.moveToNext()) {
			String name = query.getString(query.getColumnIndex("name"));
			String age = query.getString(query.getColumnIndex("age"));
			String sex = query.getString(query.getColumnIndex("sex"));

			Log.i("reqest", name + "*****" + age + "*****" + sex);
		}
		return null;

	}

	
	// 第二种写法
	public void add1(String name, String age, String sex) {
		writableDatabase = helper.getWritableDatabase();
		writableDatabase.execSQL(
				"insert into student5(name,age,sex) values(?,?,?)",
				new Object[] { name, age });
		writableDatabase.close();
	}

	public void delete1(String name) {
		writableDatabase = helper.getWritableDatabase();
		writableDatabase.execSQL("delete from student5 where name=?",
				new Object[] { name });
		writableDatabase.close();
	}

	public void update1(String name, String age) {
		writableDatabase = helper.getWritableDatabase();
		writableDatabase.execSQL("update student5 set age=? where name=?",
				new Object[] { name, age });
		writableDatabase.close();
	}

	public String query1() {
		writableDatabase = helper.getWritableDatabase();
		Cursor rawQuery = writableDatabase.rawQuery("select * from student5",
				new String[] {});
		while (rawQuery.moveToNext()) {
			String name = rawQuery.getString(rawQuery.getColumnIndex("name"));
			String age = rawQuery.getString(rawQuery.getColumnIndex("age"));
			Log.i("nameandage", name + "******" + age);
		}

		return null;

	}

}


//使用openorcreateDatebase


package com.example.sqliteopenorcretaedatebase;

import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

public class MainActivity extends Activity {

	private SQLiteDatabase db;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		db = openOrCreateDatabase("student", MODE_PRIVATE, null);
		//db.execSQL("create table student(_id integer primary key autoincrement,name,age,sex)");
	}

	public void add(View v) {
		db.execSQL("insert into student (name,age,sex) values(?,?,?)", new String[]{"张三","10","女"});
	}

	public void delete(View v) {
		db.execSQL("delete from student where name=?",new String[]{"张三"});
	}

	public void update(View v) {
		db.execSQL("update student set sex=?",new String[]{"男"});
	}

	public void select(View v) {

		Cursor rawQuery = db.rawQuery("select * from student",new String[]{});
		while(rawQuery.moveToNext()){
			String name = rawQuery.getString(1);
			String age = rawQuery.getString(2);
			String sex = rawQuery.getString(3);
			Log.i("info", name+"*****"+age+"*****"+sex);
		}
	}

}


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值