Android 中的SQLite
2016-02-20 14:31
435 查看
//cursor.move(offset) 将记录的指针向上或者向下移动指定的行数,offset是正数代表向下,如果是负数代表向上
//cursor.moveToFirst() 移动到第一条数据,并且判断第一条数据是否存在
//cursor.moveToLast() 移动到最后一条数据,并且判断最后一条数据是否存在
//cursor.moveToNext() 移动到下一条数据,并且判断下一条数据是否存在
//cursor.moveToPrevious() 移动到上一条数据,并且判断上一条数据是否存在
//cursor.moveToPosition(position) 移动到某一条数据上,并且判断当前数据是否存在
MainActivity.java
DbOpenHelper.java
DbService.java
对于数据库的版本库更新模糊,,,,,,,,,
//cursor.moveToFirst() 移动到第一条数据,并且判断第一条数据是否存在
//cursor.moveToLast() 移动到最后一条数据,并且判断最后一条数据是否存在
//cursor.moveToNext() 移动到下一条数据,并且判断下一条数据是否存在
//cursor.moveToPrevious() 移动到上一条数据,并且判断上一条数据是否存在
//cursor.moveToPosition(position) 移动到某一条数据上,并且判断当前数据是否存在
MainActivity.java
[code]package com.example.zjday14_sqlite; import com.example.zjday14_sqlite.service.DbService; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { private Button creatBtn,updateBtn,addBtn,deleteBtn,gaiBtn,queryBtn; private DbService dbService; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); dbService =new DbService(getApplicationContext()); MyListener myListener =new MyListener(); creatBtn.setOnClickListener(myListener); updateBtn.setOnClickListener(myListener); addBtn.setOnClickListener(myListener); deleteBtn.setOnClickListener(myListener); gaiBtn.setOnClickListener(myListener); queryBtn.setOnClickListener(myListener); } private void initView() { creatBtn=(Button) findViewById(R.id.creat_btn_id); updateBtn=(Button) findViewById(R.id.update_btn_id); addBtn=(Button) findViewById(R.id.add_btn_id); deleteBtn=(Button) findViewById(R.id.delete_btn_id); gaiBtn=(Button) findViewById(R.id.gai_btn_id); queryBtn=(Button) findViewById(R.id.query_btn_id); } public class MyListener implements OnClickListener{ @Override public void onClick(View v) { switch (v.getId()) { //创建数据库 case R.id.creat_btn_id: dbService.creatDB(); break; case R.id.update_btn_id: break; //增加数据 case R.id.add_btn_id: dbService.insertData(); break; //删除数据 case R.id.delete_btn_id: dbService.deleteData(); break; //修改数据 case R.id.gai_btn_id: dbService.updateData(); break; //查询数据 case R.id.query_btn_id: dbService.queryData(); break; default: break; } Toast.makeText(getApplicationContext(), "执行成功", Toast.LENGTH_SHORT).show(); } } }
DbOpenHelper.java
[code]package com.example.zjday14_sqlite.db; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; public class DbOpenHelper extends SQLiteOpenHelper{ /** * 构造方法 *Context context, *String name 数据库名称 * CursorFactory factory 游标工厂 * int version 数据库版本号 */ public DbOpenHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } public DbOpenHelper(Context context) { super(context, "xx", null, 1); } /** * 创建数据库 * * 第一次执行时调用此方法(只调用一次) * * SQLiteDatabase db 操作数据库的类 */ @Override public void onCreate(SQLiteDatabase db) { //创建表 db.execSQL("create table user(_id integer primary key autoincrement,name varchar(50),age integer)"); } /** * 更新数据库 */ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
DbService.java
[code]package com.example.zjday14_sqlite.service; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.util.Log; import com.example.zjday14_sqlite.db.DbOpenHelper; public class DbService { private Context context; private DbOpenHelper dbOpenHelper; public DbService(Context context) { super(); this.context = context; dbOpenHelper =new DbOpenHelper(context); } //创建数据库 public void creatDB(){ // dbOpenHelper =new DbOpenHelper(context); //只有调用此方法后数据才能创建,在openhelper中已经创建了表 dbOpenHelper.getWritableDatabase(); } // 插入数据 public void insertData(){ //第一种方式:直接执行SQL语句 /* //SQLiteDatabase 管理和操作数据库 SQLiteDatabase db =dbOpenHelper.getWritableDatabase(); //执行插入语句 db.execSQL("insert into user(name,age) values('张三',18)"); db.execSQL("insert into user(name,age) values('李四',18)"); db.execSQL("insert into user(name,age) values('王五',18)"); db.execSQL("insert into user(name,age) values('孙六',18)");*/ //第二种方式:利用Android中已经封装好的方法 SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); /** * table 表名 * nullColumnHack 可以为null,如果nullColumnHack为空,insert into user() values() * values 值 ContentValues */ ContentValues values = new ContentValues(); values.put("name", "赵四"); values.put("age", "19"); db.insert("user", null, values); } //修改数据 public void updateData(){ //第一种方式: /* SQLiteDatabase db =dbOpenHelper.getWritableDatabase(); db.execSQL("update user set age=? where _id=?", new String[]{"20","4"});*/ //第二种方式 SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); /** * update user set amount=? where _id=? * * table 表名 * values 值ContentValues (key = 字段名称 value = 值) * whereClause where语句后面的字句 * whereArgs 占位符的取值 */ ContentValues values = new ContentValues(); values.put("name", "刘能"); db.update("user", values, "_id=?", new String[]{"2"}); } //删除数据 public void deleteData(){ //第一种方式: /*SQLiteDatabase db =dbOpenHelper.getWritableDatabase(); db.execSQL("delete from user where _id=4 ");*/ //第二种方式: SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); /** * table 表名 * whereClause where之后的字句 * whereArgs 占位符的取值 */ db.delete("user", "_id=?", new String[]{"2"}); } //查询数据 public void queryData(){ //第一种方式: /*SQLiteDatabase db =dbOpenHelper.getWritableDatabase(); //使用sql语句查询是注意,db.如rawquery得到的是个游标 Cursor cursor= db.rawQuery("select * from user", null); if(cursor.moveToNext()) { //从游标中取出数据(列的编号) //得到列的编号cursor.getColumnIndex("name") String name = cursor.getString(cursor.getColumnIndex("name")); int age = cursor.getInt(cursor.getColumnIndex("age")); Log.i("info", name+","+age); }*/ //第二种方式: SQLiteDatabase db = dbOpenHelper.getReadableDatabase(); /** * distinct 是否去除重复 * table 表名 * columns 查询的列名 new String[]{"name","age","amount"} * selection where 之后的字句 _id=? * selectionArgs 条件占位符的值 new String[]{"2"} * groupBy 分组 * having 放置到where之后,再次筛选 * orderBy 排序 * limit 区间 */ Cursor cursor = db.query("user", new String[]{"name","age","amount"}, "_id=?", new String[]{"2"}, null, null, null); { String name = cursor.getString(cursor.getColumnIndex("name")); Log.i("info", "您查询的姓名是:" + name); } } }
对于数据库的版本库更新模糊,,,,,,,,,
相关文章推荐
- android Camera 中如何修改缩放变焦参数
- android - 屏幕单位详解(dp、sp、px、in、pt、mm)
- Android之线程安全的单例模式,Adapter注意事项之引用传值
- 从 Android 静音看正确的查找 bug 的姿势
- Android的IPC机制(一)——AIDL的使用
- 浅析Android的窗口
- Android内存泄露之Context
- Android录制WAV文件
- 基于Android arm64 可执行程序的编译运行
- Android学习路线(六)为Android应用加入ActionBar
- android 成长日记 4.BaseActivity的实现和ActivityCollectio实现
- Android GridView实现自适应正方形
- 16-02-20 android.content.res.Resources$NotFoundException
- Android中全屏 取消标题栏,TabHost中设置NoTitleBar的三种方法(强制取消黑边)
- Android 5.0 之 RecyclerView 和 CardView
- ANDROID_MARS学习笔记_S03_002_设置可见性及扫描蓝牙设备
- android时差8小时
- android adb 常用命令
- android中常用的设计模式
- 第6章 Android的Drawable