lobiner 关于android中的sqlite数据库操作
2016-12-25 14:34
489 查看
sqlite是Android自带的一种小型数据库,无需安装即可直接使用,方便有效。
那么我们怎么操作他呢?一般有两种方法,第一种是使用sql语句的方法。
代码如下:
首先要创建一个数据库,写一个Myhelper类继承SQLiteOpenHelper类:
以上是用Sql语句来操作数据库的,还有一种是数据库自带的方法来操作数据库:
代码如下:
首先同样是创建一个数据库,上面已经有了,在这里不做重复,直接上操作方法:
那么我们怎么操作他呢?一般有两种方法,第一种是使用sql语句的方法。
代码如下:
首先要创建一个数据库,写一个Myhelper类继承SQLiteOpenHelper类:
public class MyHelper extends SQLiteOpenHelper { // 构造 version数据版本,是从1开始 public MyHelper(Context context) { super(context, "day02.db", null, 1); } // 创建时调用,----创建表格 @Override public void onCreate(SQLiteDatabase db) { String sql = "create table user(id integer primary key autoincrement,userName text,userAge text)"; db.execSQL(sql); } // 数据库升级时调用 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 添加sex字段 db.execSQL("alter table user add column sex text"); } } 然后是增删改查的方法: // 点击事件 @Override public void onClick(View v) { switch (v.getId()) { case R.id.add: // 增加 String name1 = name.getText().toString(); String age1 = age.getText().toString(); /** * 1.打开数据库 2.放数据 3.关闭 */ SQLiteDatabase database = myHelper.getReadableDatabase(); database.execSQL("insert into user(userName,userAge)values(?,?)", new String[] { name1, age1 }); database.close(); break; // 删除 case R.id.dele: String name2 = name.getText().toString(); SQLiteDatabase database1 = myHelper.getReadableDatabase(); String dele_sql = "delete from user where userName=?"; database1.execSQL(dele_sql, new String[] { name2 }); database1.close(); break; case R.id.modify: // 修改 String name3 = name.getText().toString(); String age3 = age.getText().toString(); SQLiteDatabase database2 = myHelper.getReadableDatabase(); String modify_sql = "update user set userAge=? where userName=?"; database2.execSQL(modify_sql, new String[] { age3, name3 }); database2.close(); break; // 查询数据,根据名字查询数据 case R.id.query: String name4 = name.getText().toString(); SQLiteDatabase database3 = myHelper.getReadableDatabase(); String query_sql = "select * from user";// 全查 // database2.execSQL(modify_sql, new String[]{age3,name3}); Cursor cursor = database3.rawQuery(query_sql, null); // 查看数据 if (cursor != null && cursor.getCount() > 0) { // 取出数据 while (cursor.moveToNext()) { // raw // String age = // cursor.getString(columnIndex);columnIndex字段的索引 String name = cursor.getString(cursor .getColumnIndex("userName")); String age = cursor.getString(cursor .getColumnIndex("userAge"));// columnName字段的名字 System.out.println("name--" + name + "--age--" + age); } } else { Toast.makeText(MainActivity.this, "无数据", 0).show(); } database3.close(); break; default: break; }
以上是用Sql语句来操作数据库的,还有一种是数据库自带的方法来操作数据库:
代码如下:
首先同样是创建一个数据库,上面已经有了,在这里不做重复,直接上操作方法:
@Override public void onClick(View v) { switch (v.getId()) { // 增加数据 case R.id.add: /** * 打开数据库 放入数据 关闭数据库 */ SQLiteDatabase database = myHelper.getReadableDatabase(); // database.insert(table,表名 nullColumnHack 开辟的字段, values插入的值); // 取得名字和年龄 String name1 = name.getText().toString(); String age1 = age.getText().toString(); ContentValues values = new ContentValues(); // 放入values values.put("userName", name1); values.put("userAge", age1); database.insert("user", null, values); database.close(); break; // 删除 case R.id.delete: // 打开数据库 String name2 = name.getText().toString(); SQLiteDatabase database2 = myHelper.getWritableDatabase(); database2.delete("user", "userName=?", new String[] { name2 }); database2.close(); break; // 修改 case R.id.modify: String name3 = name.getText().toString(); String age3 = age.getText().toString(); SQLiteDatabase database3 = myHelper.getWritableDatabase(); ContentValues values2 = new ContentValues(); values2.put("userName", name3); values2.put("userAge", age3); database3.update("user", values2, "userName=?", new String[] { name3 }); database3.close(); break; // 查询 case R.id.query: // 全查 String name4 = name.getText().toString(); SQLiteDatabase database4 = myHelper.getWritableDatabase(); // // database4.query(table表格, columns要查询的字段, selection, // // 约束条件selectionArgs约束条件要传的值, groupBy,组 having,包含 orderBy,排序 limit, // // 分页) // Cursor cursor = database4.query("user", null, null, null, null, null, null); // //遍历 // if (cursor!=null && cursor.getCount()>0) { // while(cursor.moveToNext()){ // String name4 = cursor.getString(cursor.getColumnIndex("userName")); // String age4 = cursor.getString(cursor.getColumnIndex("userAge")); // System.out.println("name--"+name4+"--age--"+age4); // } // } // cursor.close(); // database4.close(); //部分查询 Cursor cursor = database4.query("user", new String[]{"userAge"}, "userName=?", new String[]{name4}, null, null, null); if (cursor!=null && cursor.getCount()>0) { while(cursor.moveToNext()){ String age4 = cursor.getString(cursor.getColumnIndex("userAge")); System.out.println("--age--"+age4); } } cursor.close(); database4.close(); break; default: break; } }
相关文章推荐
- lobiner 关于android中的sqlite数据库操作
- Android 对于Sqlite数据库的操作 感觉到不可理解的地方 2
- Android精简小笔记(3):在adb shell中操作sqlite数据库的方法
- Android关于SD卡的读写操作及固定图片大小
- android中关于手机屏幕的相关操作(获取屏幕的宽高等操作)
- Android系统中关于短信(SMS)的操作
- Android中操作Sqlite数据库:例图
- 【转】Android使用事务操作SQLite数据库【学习记录】
- Android操作嵌入式关系型SQLite数据库
- Android Sqlite数据库查询操作使用 '%?%' 的问题
- android中关于手机屏幕的相关操作(获取屏幕的宽高等操作)
- Android 关于SD卡操作 之 SD卡文件浏览器和存取SD卡上的图像
- Android操作嵌入式关系型SQLite数据库
- Hello Android - SQLite数据库操作
- android 关于时间的操作整理
- 关于android中操作sim卡联系人的相关内容
- 关于Android Notification 点击 ,程序恢复最后操作页面(类似Android QQ)。Home 键操作恢复
- Android 学生管理系统 之 SQLite数据库操作
- Android关于联网操作的小总结
- Android 使用SQLiteDatabase操作SQLite数据库