<Button
android:id="@+id/delete_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="删除"/>

<Button
android:id="@+id/update_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="修改"/>
<Button
android:id="@+id/query_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="查询"/>

package net.bwie.localdata;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import net.bwie.localdata.sqlite.DBHelper;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

protected Button mInsertBtn;
protected Button mDeleteBtn;
protected Button mUpdateBtn;
protected Button mQueryBtn;
private DBHelper mHelper;
private SQLiteDatabase mDatabase;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_main);
initView();

mHelper = new DBHelper(this);
mDatabase = mHelper.getWritableDatabase();
}

private void initView() {
mInsertBtn = (Button) findViewById(R.id.insert_btn);
mInsertBtn.setOnClickListener(MainActivity.this);
mDeleteBtn = (Button) findViewById(R.id.delete_btn);
mDeleteBtn.setOnClickListener(MainActivity.this);
mUpdateBtn = (Button) findViewById(R.id.update_btn);
mUpdateBtn.setOnClickListener(MainActivity.this);
mQueryBtn = (Button) findViewById(R.id.query_btn);
mQueryBtn.setOnClickListener(MainActivity.this);
}

@Override
public void onClick(View view) {
if (view.getId() == R.id.insert_btn) {
insertData();
} else if (view.getId() == R.id.delete_btn) {
deleteData();
} else if (view.getId() == R.id.update_btn) {
updateData();
} else if (view.getId() == R.id.query_btn) {
queryData();
}
}

// 表名
// null。数据库如果插入的数据为null,会引起数据库不稳定。为了防止崩溃,需要传入第二个参数要求的对象
// 如果插入的数据不为null,没有必要传入第二个参数避免崩溃,所以为null
// 插入的数据
private void insertData() {
ContentValues values = new ContentValues();
values.put(DBHelper.NAME, "鹿晗");
values.put(DBHelper.AGE, 17);
mDatabase.insert(DBHelper.TABLE_NAME, null, values);
Toast.makeText(this, "插入成功", Toast.LENGTH_SHORT).show();
}

// 表名
// 删除条件
// 满足删除的值
private void deleteData() {
int count = mDatabase.delete(DBHelper.TABLE_NAME, DBHelper.NAME + " = ?", new String[]{"鹿晗"});
Toast.makeText(this, "删除数量:"+count, Toast.LENGTH_SHORT).show();
}

// 表名
// 修改后的数据
// 修改条件
// 满足修改的值
private void updateData() {
ContentValues values = new ContentValues();
values.put(DBHelper.NAME, "小茗同学");
values.put(DBHelper.AGE, 18);
int count = mDatabase
.update(DBHelper.TABLE_NAME, values, DBHelper.NAME + " = ?", new String[]{"鹿晗"});
Toast.makeText(this, "修改成功:" + count, Toast.LENGTH_SHORT).show();
}

// 表名
// 查询字段
// 查询条件
// 满足查询的值
// 分组
// 分组筛选关键字
// 排序
private void queryData() {
Cursor cursor = mDatabase.query(DBHelper.TABLE_NAME,
new String[]{DBHelper.NAME, DBHelper.AGE},
DBHelper.AGE + " > ?",
new String[]{"16"},
null,
null,
DBHelper.AGE + " desc");// 注意空格!

int nameIndex = cursor.getColumnIndex(DBHelper.NAME);
int ageIndex = cursor.getColumnIndex(DBHelper.AGE);
while (cursor.moveToNext()) {
String name = cursor.getString(nameIndex);
String age = cursor.getString(ageIndex);

Log.d("1507", "name: " + name + ", age: " + age);
}
}
}

package net.bwie.localdata.sqlite;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DBHelper extends SQLiteOpenHelper {

// 数据库文件名
public static final String DB_NAME = "my_database.db";
// 数据库表名
public static final String TABLE_NAME = "t_person";
// 数据库版本号
public static final int DB_VERSION = 1;

public static final String NAME = "name";
public static final String AGE = "age";

public DBHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}

// 当数据库文件创建时,执行初始化操作,并且只执行一次
@Override
public void onCreate(SQLiteDatabase db) {
// 建表
String sql = "create table " +
TABLE_NAME +
"(_id integer primary key autoincrement, " +
NAME + " varchar, " +
AGE + " varchar"
+ ")";

db.execSQL(sql);
}

// 当数据库版本更新执行该方法
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}
}

最新文章

  1. WinForm 多窗体
  2. jquery中获取元素的几种方式小结
  3. css绝对定位问题
  4. 使用 CSS3 打造一组质感细腻丝滑的按钮
  5. ThinkPHP 3.2.2 视图模板中使用字符串截取函数
  6. 使用expect实现批量操作的自动化
  7. Hibernate命名空间怎样实现?
  8. 克鲁斯卡尔(Kruskal)算法
  9. Qt5窗口设计
  10. NVIDIA+关联2015写学校招收评论(嵌入式方向,上海)
  11. Ajax新玩法fetch API
  12. 干货,一文带你超详细了解 Filter 的原理及应用
  13. VC++全屏
  14. CF Educational Codeforces Round 57划水记
  15. html基本进阶知识【转】
  16. ceph S3测试--cosbench
  17. js检测字符串的字节数
  18. C# 生成日期维度值
  19. 解决当FORM的ENCTYPE=&quot;multipart/form-data&quot; 时request.getParameter()获取不到值的方法
  20. CocosIDE导出Android APK的注意事项

热门文章

  1. IDEA及时更新js代码
  2. RK平台LCD调试说明【转】
  3. GC回收算法--当女友跟你提分手!
  4. bzoj1566 [NOI2009]管道取珠——DP
  5. Ajax跨域访问等问题
  6. 2-11 tensorflow常量变量定义
  7. CodeForces 721B Passwords (水题)
  8. bzoj 4825: [Hnoi2017]单旋【dfs序+线段树+hash】
  9. 洛谷P3211 [HNOI2011]XOR和路径(期望dp+高斯消元)
  10. notepad++无法设置成默认打开方式