Android数据存储之SQLite简单用法
来源:互联网 发布:淘宝网上充话费 编辑:程序博客网 时间:2024/05/21 01:53
实现效果图如下:
activity_main.xml布局文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:id="@+id/create" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="创建数据库" /> <Button android:id="@+id/update" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="更新数据库" /> <Button android:id="@+id/insert" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="插入数据" /> <Button android:id="@+id/updatedata" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="更新数据" /> <Button android:id="@+id/modify" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="修改数据" /> <Button android:id="@+id/select" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="查询数据" /> <Button android:id="@+id/delete" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="删除数据" /></LinearLayout>
DatabaseHelper辅助类代码:
import android.content.Context;import android.database.DatabaseErrorHandler;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.util.Log;/** * SQLiteOpenHelper是SQLiteDatabase一个辅助类,这个类主要生成数据库,并对版本进行管理。 * getWritableDatabase()和getReadableDatabase()可以对数据库进行操作 */public class DatabaseHelper extends SQLiteOpenHelper { private static final String TAG = "TestSQLite"; /** * 必须有构造方法 * * @param context 上下文 * @param name 数据库名称 * @param factory * @param version 当前数据库版本 */ public DatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); } public DatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler) { super(context, name, factory, version, errorHandler); } /** * 当第一次创建数据库的时候,调用该方法 * * @param db */ @Override public void onCreate(SQLiteDatabase db) { //创建一张用户表,属性列为:id(主键并且自动增加)、name(学生姓名)、number(学号) String sql = "create table user(_id integer primary key autoincrement,name text,number text)"; //输出数据库的日志 Log.i(TAG, "create Database-------------> "); //execSQL函数用于执行SQL语句 db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { //输出更新数据库的日志 Log.i(TAG, "update Database------------->"); }}
MainActivity代码:
import android.app.Activity;import android.content.ContentValues;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.view.View;import android.widget.Button;public class MainActivity extends Activity { private Button mCreateButton; private Button mUpdateButton; private Button mInsertButton; private Button mUpdatedataButton; private Button mModifyButton; private Button mSelectButton; private Button mDeleteButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); setListener(); } private void init() { mCreateButton = (Button) findViewById(R.id.create); mUpdateButton = (Button) findViewById(R.id.update); mInsertButton = (Button) findViewById(R.id.insert); mUpdatedataButton = (Button) findViewById(R.id.updatedata); mModifyButton = (Button) findViewById(R.id.modify); mSelectButton = (Button) findViewById(R.id.select); mDeleteButton = (Button) findViewById(R.id.delete); } private void setListener() { //创建数据库的方法 mCreateButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //创建一个DatabaseHelper对象 DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, "user", null, 1); //调用了DatabaseHelper的getWritableDatabase()或getReadableDatabase(),得到一个可读的SQLiteDatabase对象 SQLiteDatabase db = dbHelper.getReadableDatabase(); } }); //更新数据库的方法 mUpdateButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // 数据库版本的更新,由原来的1变为2 DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, "user", null, 2); SQLiteDatabase db = dbHelper.getReadableDatabase(); } }); //插入数据的方法 mInsertButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, "user", null, 1); //得到一个可写的数据库 SQLiteDatabase db = dbHelper.getWritableDatabase(); //生成ContentValues对象 //key:列名,value:想插入的值 ContentValues cv = new ContentValues(); //往ContentValues对象存放数据,键-值对模式 cv.put("id", 1); cv.put("name", "zhangbiao"); cv.put("age", 27); cv.put("sex", "male"); //调用insert方法,将数据插入数据库 // 第一个参数:表名称 // 第二个参数:SQl不允许一个空列,如果ContentValues是空的,那么这一列被明确的指明为NULL值 // 第三个参数:ContentValues对象 db.insert("user", null, cv); //关闭数据库 db.close(); } }); //更新数据的方法 mUpdatedataButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, "user", null, 1); //得到一个可写的数据库 SQLiteDatabase db = dbHelper.getWritableDatabase(); //生成ContentValues对象 //key:列名,value:想插入的值 ContentValues cv = new ContentValues(); //往ContentValues对象存放数据,键-值对模式 cv.put("id", 1); cv.put("name", "zhangbiao"); cv.put("age", 27); cv.put("sex", "male"); // 调用update方法 // 第一个参数String:表名 // 第二个参数ContentValues:ContentValues对象 // 第三个参数String:where字句,相当于sql语句where后面的语句,?号是占位符 // 第四个参数String[]:占位符的值 db.update("user", cv, "id=?", new String[]{"1"}); //关闭数据库 db.close(); } }); //修改数据的方法 mModifyButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, "user", null, 1); //得到一个可写的数据库 SQLiteDatabase db = dbHelper.getWritableDatabase(); ContentValues cv = new ContentValues(); cv.put("sage", "23"); //where 子句 "?"是占位符号,对应后面的"1", String whereClause = "id=?"; String[] whereArgs = {String.valueOf(1)}; //第一个参数String:要更新的表名 //第二个参数ContentValues:一个ContentValeus对象 //第三个参数String: 是where子句 db.update("user", cv, whereClause, whereArgs); } }); //查询数据的方法 mSelectButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, "user", null, 1); //得到一个可读的SQLiteDatabase对象 SQLiteDatabase db = dbHelper.getReadableDatabase(); // 调用SQLiteDatabase对象的query方法进行查询,返回一个Cursor对象:由数据库查询返回的结果集对象 // 第一个参数String:表名 // 第二个参数String[]:要查询的列名 // 第三个参数String:查询条件 // 第四个参数String[]:查询条件的参数 // 第五个参数String:对查询的结果进行分组 // 第六个参数String:对分组的结果进行限制 // 第七个参数String:对查询的结果进行排序 Cursor cursor = db.query("stu_table", new String[]{"id", "name", "age", "sex"}, "id=?", new String[]{"1"}, null, null, null); while (cursor.moveToNext()) { String name = cursor.getString(cursor.getColumnIndex("name")); String age = cursor.getString(cursor.getColumnIndex("age")); String sex = cursor.getString(cursor.getColumnIndex("sex")); System.out.println("query------->" + "姓名:" + name + " " + "年龄:" + age + " " + "性别:" + sex); } //关闭数据库 db.close(); } }); //删除数据的方法 mDeleteButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this, "user", null, 1); //得到一个可写的数据库 SQLiteDatabase db = dbHelper.getWritableDatabase(); //调用SQLiteDatabase对象的delete方法进行删除操作 //第一个参数String:表名 //第二个参数String:条件语句 //第三个参数String[]:条件值 db.delete("user", "id=?", new String[]{"1"}); } }); }}
0 0
- Android数据存储之SQLite简单用法
- android 存储 SQLite 简单用法
- 【Android】数据存储之SQLite
- android数据存储之SQLite
- Android数据存储之SQLite
- Android数据存储之SQLite
- Android数据存储之SQLite
- Android之SQLite 数据存储
- Android之SQLite 数据存储
- Android 数据存储之SQLite
- Android数据存储之SQLite
- android数据存储之SQLite
- Android 数据存储之 SQLite
- Android数据存储之Sqlite
- Android数据存储之SQLite
- Android:数据存储之SQLite
- Android数据存储之SQLite
- Android数据存储之SQLite
- gem5集成NVMain
- 停车场收费系统2
- hbase与mysql的区别
- Standford CS231n 循环神经网络 简要笔记
- Android学习之Java基础篇day2
- Android数据存储之SQLite简单用法
- 反射(1)--类加载器
- Windows下安装PySide
- HTML笔记
- 查询动态管理数据库的信息
- 2017.2.23
- 浏览器缓存机制(二)——application cache
- hibernate中提倡持久类实现equals()和hashCode()的原因分析
- 象棋 (Xiangqi, ACM/ICPC Fuzhou 2011, UVa1589)