android Api操作SQLite数据库的示例代码

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

/**
 * 创建数据库帮助类 extends SQLiteOpenHelper
 */
public class MyDbOpenHelper extends SQLiteOpenHelper {

	/**
	 * 构造方法
	 * 
	 * @param context
	 *            上下文
	 * @param name
	 *            数据库名称
	 * @param factory
	 *            null
	 * @param version
	 *            数据库的版本号 >=1
	 *            只能升级不能降级
	 */
	public MyDbOpenHelper(Context context) {
		super(context,"Info.db",null,1);
	}

	/**
	 * 第一次创建数据库的时候调用
	 * 适合初始化数据库的表
	 */
	@Override
	public void onCreate(SQLiteDatabase db) {
		db.execSQL("create table stu(_id integer primary key autoincrement,name varchar(20),num varchar(20),money varchar(20))");
	}

	/**
	 * 数据库升级时,调用
	 * 修改数据库的表
	 */
	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		System.out.println("onUpgrade");
	}
}

import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}

	public void trans(View v) {
		// 1. 在内存中创建数据库帮助类的对象
		MyDbOpenHelper helper = new MyDbOpenHelper(this);
		// 2. 在磁盘上创建数据库文件
		SQLiteDatabase db = helper.getWritableDatabase();
		
	/*	ContentValues values = new ContentValues();
		values.put("name", "张三");
		values.put("money", "1");
		values.put("num", 001);
		db.insert("stu", null, values);
		
		ContentValues values1 = new ContentValues();
		values1.put("name", "我");
		values1.put("money", "100000000");
		values1.put("num", 002);
		db.insert("stu", null, values1);*/
		
		try {
			db.beginTransaction();//开启事务
			//转账
			ContentValues values = new ContentValues();
			values.put("money", 1);
			db.update("stu", values, "name=?", new String[]{"张三"});
			
			//int a = 5/0;//模拟事务失败对结果的影响
			ContentValues values1 = new ContentValues();
			values1.put("money", 20000000);
			db.update("stu", values1, "name=?", new String[]{"Me"});
			
			db.setTransactionSuccessful();//事务操作成功
		} catch (Exception e) {
		}finally{
			db.endTransaction();//关闭事务
		}
		
		// 释放资源
		db.close();
	}
	
	public void insert(View v) {
		// 1. 在内存中创建数据库帮助类的对象
		MyDbOpenHelper helper = new MyDbOpenHelper(this);
		// 2. 在磁盘上创建数据库文件
		SQLiteDatabase db = helper.getWritableDatabase();
		
		/**
		 * table		:表名
		 * nullColumnHack:
		 */
		ContentValues values = new ContentValues();
		values.put("name", "张三");
		values.put("num", 123);
		long id = db.insert("stu", null, values);
		if (id == -1) {
			Toast.makeText(this, "插入失败", 0).show();
		}else {
			Toast.makeText(this, "id="+id, 0).show();
		}
		// 释放资源
		db.close();
	}

	public void delete(View v) {
		// 1. 在内存中创建数据库帮助类的对象
		MyDbOpenHelper helper = new MyDbOpenHelper(this);
		// 2. 在磁盘上创建数据库文件
		SQLiteDatabase db = helper.getWritableDatabase();
		int id = db.delete("stu", null, null);
		if (id == 0) {
			Toast.makeText(this, "删除失败", 0).show();
		}else {
			Toast.makeText(this, "id="+id, 0).show();
		}
		// 释放资源
		db.close();
	}

	public void update(View v) {
		// 1. 在内存中创建数据库帮助类的对象
		MyDbOpenHelper helper = new MyDbOpenHelper(this);
		// 2. 在磁盘上创建数据库文件
		SQLiteDatabase db = helper.getWritableDatabase();
		
		/**
		 * table		:表名
		 * values		:修改的列
		 * whereClause	:修改条件
		 * whereArgs	:修改条件的占位符
		 */
		ContentValues values = new ContentValues();
		values.put("name", "songxiaobao");
		int id = db.update("stu", values, null, null);
		if (id == 0) {
			Toast.makeText(this, "删除失败", 0).show();
		}else {
			Toast.makeText(this, "id="+id, 0).show();
		}
		// 释放资源
		db.close();
	}
	
	public void query(View v){
		// 1. 在内存中创建数据库帮助类的对象
		MyDbOpenHelper helper = new MyDbOpenHelper(this);
		// 2. 在磁盘上创建数据库文件
		SQLiteDatabase db = helper.getReadableDatabase();
		
		/**
		 * table			:表名
		 * columns			:要查询的列
		 * selection		:查询条件
		 * selectionArgs	:查询条件的占位符
		 * groupBy			:分组
		 * having			:条件
		 * orderBy			:排序
		 */
		Cursor cursor = db.query("stu", new String[]{"name","num","_id","money"}, null,null,null,null,null);

		while(cursor.moveToNext()){
			String id = cursor.getString(2);
			String name = cursor.getString(0);
			String num = cursor.getString(1);
			String money = cursor.getString(3);
		}
		//释放资源
		cursor.close();
		// 释放资源
		db.close();
	}
}

 

posted on 2017-02-23 09:10  LoaderMan  阅读(264)  评论(0编辑  收藏  举报

导航