博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ex_dbActivity extends Activity
阅读量:2299 次
发布时间:2019-05-09

本文共 6688 字,大约阅读时间需要 22 分钟。

package com.ouling.ex_db;import android.app.Activity;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class Ex_dbActivity extends Activity {	private static DB_helper mDbHelper;	private static SQLiteDatabase mdb;	private Context context;	private Button btn_newdb, btn_deldb, btn_newtable, btn_deltable, btn_add,			btn_del, btn_edit, btn_qu;	private static int i=0;	/** Called when the activity is first created. */	@Override	public void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.main);		context = (Context) this;		mDbHelper = new DB_helper(context);		// 调用getReadableDatabase方法如果数据库不存在 则创建 如果存在则打开		mdb = mDbHelper.getReadableDatabase();		btn_newdb = (Button) findViewById(R.id.sql_newdb);		btn_deldb = (Button) findViewById(R.id.sql_deldb);		btn_newtable = (Button) findViewById(R.id.sql_newtable);		btn_deltable = (Button) findViewById(R.id.sql_deltable);		btn_add = (Button) findViewById(R.id.sql_add);		btn_del = (Button) findViewById(R.id.sql_delete);		btn_edit = (Button) findViewById(R.id.sql_edit);		btn_qu = (Button) findViewById(R.id.sql_qu);		// 数据库		btn_newdb.setOnClickListener(listener);		btn_deldb.setOnClickListener(listener);		// 表		btn_newtable.setOnClickListener(listener);		btn_deltable.setOnClickListener(listener);		// 数据		btn_add.setOnClickListener(listener);		btn_del.setOnClickListener(listener);		btn_edit.setOnClickListener(listener);		btn_qu.setOnClickListener(listener);	}	final OnClickListener listener = new OnClickListener() {		@Override		public void onClick(View v) {			// TODO Auto-generated method stub			try {				switch (v.getId()) {				// 新建数据库				case R.id.sql_newdb:					mDbHelper = new DB_helper(context);					// 调用getReadableDatabase方法如果数据库不存在 则创建 如果存在则打开					mdb = mDbHelper.getReadableDatabase();//					// ---------------以下两个成员变量是针对在SD卡中存储数据库文件使用//					File path = new File("/sdcard/ouling");// 创建目录//					File f = new File("/sdcard/ouling/OuLing.db");// 创建文件//					// 如果你使用的是将数据库的文件创建在SD卡中,那么创建数据库mysql如下操作://					if (!path.exists()) {// 目录存在返回false//						path.mkdirs();// 创建一个目录//					}//					if (!f.exists()) {// 文件存在返回false//						try {//							f.createNewFile();// 创建文件//						} catch (IOException e) {//							// TODO Auto-generated catch block//							e.printStackTrace();//						}//					}					// 如果你使用的是将数据库的文件创建在SD卡中,那么创建数据库mysql如下操作://					mdb = SQLiteDatabase.openOrCreateDatabase(f, null);					Toast.makeText(context, "成功创建数据库", 1000).show();					break;				// 删除数据库				case R.id.sql_deldb:					mDbHelper = new DB_helper(context);					mdb = mDbHelper.getReadableDatabase();					// 关闭数据库					mdb.close();					// 删除数据库					if (context.deleteDatabase(DB_helper.DATABASE_NAME)) {						Toast.makeText(context, "成功删除数据库", 1000).show();					}//					// ---------------以下是删除SD卡中数据库//					File del_f = new File("/sdcard/ouling/OuLing.db");// 创建文件//					if (del_f.exists()) {//						del_f.delete();//					}//					Toast.makeText(context, "成功删除数据库", 1000).show();					break;				// 新建表				case R.id.sql_newtable:					try {						mdb = mDbHelper.getWritableDatabase();						String str_sql = "CREATE TABLE New_table(id INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR);";						mdb.execSQL(str_sql);						Toast.makeText(context, "成功创建一张新表", 1000).show();					} catch (Exception e) {						Toast.makeText(context, "该表已经存在", 1000).show();					}					break;				// 删除表				case R.id.sql_deltable:					try {						mdb = mDbHelper.getWritableDatabase();						String str_sql = "DROP TABLE New_table";						mdb.execSQL(str_sql);						Toast.makeText(context, "成功删除表", 1000).show();					} catch (Exception e) {						// TODO: handle exception						Toast.makeText(context, "要求删除的表不存在", 1000).show();					}					break;				// 添加数据				case R.id.sql_add:					mdb = mDbHelper.getWritableDatabase();					// ---------------------- 读写句柄来插入---------					// ContentValues 其实就是一个哈希表HashMap, key值是字段名称,					// Value值是字段的值。然后 通过 ContentValues 的 put 方法就可以					// 把数据放到ContentValues中,然后插入到表中去!					ContentValues add_cv = new ContentValues();					add_cv.put("name", "欧零"+i+"");					add_cv.put("number", i+"");					mdb.insert("student_info", null, add_cv);					// inser() 第一个参数 标识需要插入操作的表名					// 第二个参数 :默认传null即可					// 第三个是插入的数据					// ---------------------- SQL语句插入--------------					// String INSERT_DATA =					// "INSERT INTO student_info(id,text) values (1, '通过SQL语句插入')";					// mdb.execSQL(INSERT_DATA);					Toast.makeText(context, "成功添加数据", 1000).show();					break;				// 删除数据				case R.id.sql_delete:					mdb = mDbHelper.getWritableDatabase();					// ---------------------- 读写句柄来删除					// mdb.delete("student_info", "number =1", null);					// 第一个参数 需要操作的表名					// 第二个参数为 id+操作的下标 如果这里我们传入null,表示全部删除					// 第三个参数默认传null即可					// ----------------------- SQL语句来删除					String DELETE_DATA = "DELETE FROM student_info WHERE number=1";					mdb.execSQL(DELETE_DATA);					Toast.makeText(context, "成功删除数据", 1000).show();					break;				// 修改数据				case R.id.sql_edit:					mdb = mDbHelper.getWritableDatabase();					// ------------------------句柄方式来修改 -------------					ContentValues edit_cv = new ContentValues();					edit_cv.put("name", "示例大全");					mdb.update("student_info", edit_cv, "id = 2", null);					// ------------------------SQL语句来修改 -------------					// String UPDATA_DATA =					// "UPDATE student_info SET text='通过SQL语句的示例大全'  WHERE id=2";					// db.execSQL(UPDATA_DATA);					Toast.makeText(context, "成功修改数据", 1000).show();					break;				// 遍历数据				case R.id.sql_qu:					mdb = mDbHelper.getReadableDatabase();					// ------------------------语句查询					// Cursor cur = mdb.rawQuery("SELECT * FROM "					// + DB_helper.TABLE_NAME, null);					// ------------------------句柄查询					String[] projections = new String[] { "id", "name","number" };					Cursor cur = mdb.query("student_info", projections, null, null,							null, null, "id desc ");					String temp = "";					if (cur != null) {						if (cur.getCount() == 0) {							temp = "无数据";						}						while (cur.moveToNext()) {// 直到返回false说明表中到了数据末尾							temp += cur.getString(0) + "	";							// 参数0 指的是projections数组列的下标,这里的0指的是id列							temp += cur.getString(1);							// 这里的1应该是咱们的name列							temp += cur.getString(2);							// 这里的2对应的是number列							temp += "\n";						}					}					Toast.makeText(context, temp, 1000).show();					break;				default:					break;				}			} catch (Exception e) {				// TODO: handle exception				System.out.println(e.toString());			} finally {				// 如果发生异常,同样需要对数据库进行关闭				mdb.close();			}		}	};}

转载地址:http://wbkib.baihongyu.com/

你可能感兴趣的文章
Error creating bean with name 'webSocketHandlerMapping'
查看>>
Eclipse修改发布工程名
查看>>
Maven 手动添加 JAR 包到本地仓库(转)
查看>>
Myeclipse在mybatis下java.lang.OutOfMemoryError: Java heap space的解决
查看>>
深入单例模式二
查看>>
69道Spring面试题和答案(转)
查看>>
Spring常见问题总结面试(转)
查看>>
Spring 优缺点搜集与汇总
查看>>
Spring 事务隔离级别(转)
查看>>
全面分析 Spring 的编程式事务管理及声明式事务管理(转)
查看>>
Spring注解详解(转)
查看>>
模板方法模式深度解析(.net)(转)
查看>>
模板方法模式 java(转)
查看>>
MySql查询时间段的方法(转)
查看>>
java int与integer的区别(转)
查看>>
Web服务实现方案一:REST简介
查看>>
Web服务实现方案二:SOAP简介
查看>>
Web服务实现方案三:XML-RPC简介
查看>>
Web服务实现方案四:JSON-RPC简介
查看>>
WebService技术实现方案(转)
查看>>