博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库File f = new File("/sdcard/ouling/OuLing.db");// 创建文件
阅读量:2299 次
发布时间:2019-05-09

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

// 数据库		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://rfkib.baihongyu.com/

你可能感兴趣的文章
Python的elif语句
查看>>
迭代序列的三种方法和与序列相关的内建函数
查看>>
用Python实现求最大公约数和判断是否是素数
查看>>
用Python实现一个简单的算术游戏
查看>>
交叉编译linux内核
查看>>
awk简单用法介绍(转)
查看>>
shell脚本中使用MySQL
查看>>
linux --dup dup2 文件描述符重定向函数--输入输出重定向
查看>>
unix/linux中的dup()系统调用 --对上篇dup() dup2()例子的解释
查看>>
这学期读的书
查看>>
编译简介
查看>>
管道编程之pipe
查看>>
网络编程--C/S日期查询例子
查看>>
IPC机制---共享内存编程
查看>>
使用inotify进行文件事件通知
查看>>
Linux中时间函数的应用接口
查看>>
DNS解析过程详解
查看>>
牛奶可乐经济学---阅读总结
查看>>
求最长子序列和
查看>>
计算最大公因数的欧几里德算法
查看>>