zoukankan      html  css  js  c++  java
  • 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();
    	}
    }
    
  • 相关阅读:
    linux定时任务crontab介绍
    kafka跨集群同步方案
    hadoop配置参数速查大全
    kafka生产者消费者示例代码
    storysnail的Linux串口编程笔记
    storysnail的Windows串口编程笔记
    botbrew下写glib2程序
    codeblocks配置GLUT
    使用Code::blocks在windows下写网络程序
    使用pango-Cairo列出系统中的有效字体
  • 原文地址:https://www.cnblogs.com/loaderman/p/6431887.html
Copyright © 2011-2022 走看看