Android 数据存储(三)之数据库存储
2016-06-23 11:07
417 查看
Android内部有自己的数据库,Android也为我们提供了一个操作数据库的辅助类-SQLiteOpenHelper。使用这个类可以完成数据库的创建和升级。
1.创建数据库
在创建数据库之前,先自己定义一个类,继承SQLiteOpenHelper,用于程序中操作数据库。代码如下:
在主Activity的onCreate中添加函数createDB来创建数据库:
点击运行程序,验证数据库是否已经生成,这要借助Android自带的一个工具-sqlite3.exe。它在sdk\platform-tools目录下。在cmd窗口中进入该目录。执行sqlite3 person.db;就可以进入数据库了,执行.table可以查看数据库里面的表。
2.插入数据
添加插入按钮和事件响应。
运行程序,点击按钮之后,在cmd窗口执行select * from tb_person;就可以看到我们输入的数据了。
3.更新数据
添加更新按钮和事件响应。
运行程序,点击按钮之后,在cmd窗口执行select * from tb_person;就可以看到我们更新的数据了。
4.删除数据
添加删除按钮和事件响应。
运行程序,点击按钮之后,在cmd窗口执行select * from tb_person;就可以看到我们删除的数据了。
5.查找数据
添加删除按钮和事件响应。
运行程序,点击按钮之后,查看Logcat:
![](https://img-blog.csdn.net/20160623132050070)
6.数据库更新
先要对数据库的版本进行更新,在创建的时候最后一个参数就是数据库的版本,现在设置为2.
然后在DbHelper的onUpgrade中添加数据库更新要进行的操作。
运行程序,点击按钮之后,在cmd窗口执行.table;就可以看到新建的表了。
1.创建数据库
在创建数据库之前,先自己定义一个类,继承SQLiteOpenHelper,用于程序中操作数据库。代码如下:
public class DbHelper extends SQLiteOpenHelper { private static final String CREATE_PERSON_TABLE = "create table tb_person (" + "id integer primary key autoincrement, " + "name varchar(16), " + "info text)"; private Context mContext; public DbHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); // TODO Auto-generated constructor stub mContext = context; } @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub db.execSQL(CREATE_PERSON_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub } }
在主Activity的onCreate中添加函数createDB来创建数据库:
private void createDB() { // TODO Auto-generated method stub mDbHelper = new DbHelper(this, "person.db", null, 1); mDbHelper.getWritableDatabase(); }
点击运行程序,验证数据库是否已经生成,这要借助Android自带的一个工具-sqlite3.exe。它在sdk\platform-tools目录下。在cmd窗口中进入该目录。执行sqlite3 person.db;就可以进入数据库了,执行.table可以查看数据库里面的表。
2.插入数据
添加插入按钮和事件响应。
Button insert = (Button) findViewById(R.id.insert); insert.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub SQLiteDatabase db = mDbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("name", "malion"); values.put("info", "i am a ma nong!!!"); db.insert("tb_person", null, values); } });
运行程序,点击按钮之后,在cmd窗口执行select * from tb_person;就可以看到我们输入的数据了。
3.更新数据
添加更新按钮和事件响应。
Button update = (Button) findViewById(R.id.update); update.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub SQLiteDatabase db = mDbHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("info", "i am a malion!!!"); db.update("tb_person", values, "name = ?", new String[] { "malion" }); } });
运行程序,点击按钮之后,在cmd窗口执行select * from tb_person;就可以看到我们更新的数据了。
4.删除数据
添加删除按钮和事件响应。
Button delete = (Button) findViewById(R.id.delete); delete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub SQLiteDatabase db = mDbHelper.getWritableDatabase(); db.delete("tb_person", "name = ?", new String[] { "malion" }); } });
运行程序,点击按钮之后,在cmd窗口执行select * from tb_person;就可以看到我们删除的数据了。
5.查找数据
添加删除按钮和事件响应。
Button select = (Button) findViewById(R.id.select); select.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub SQLiteDatabase db = mDbHelper.getWritableDatabase(); Cursor cursor = db.query("tb_person", null, null, null, null, null, null); if (cursor != null) { while (cursor.moveToNext()) { String name = cursor.getString(cursor .getColumnIndex("name")); String info = cursor.getString(cursor 4000 .getColumnIndex("info")); Log.i("info", "name: " + name + "info: " + info); } cursor.close(); } } });
运行程序,点击按钮之后,查看Logcat:
6.数据库更新
先要对数据库的版本进行更新,在创建的时候最后一个参数就是数据库的版本,现在设置为2.
private void createDB() { // TODO Auto-generated method stub mDbHelper = new DbHelper(this, "person.db", null, 2); mDbHelper.getWritableDatabase(); }
然后在DbHelper的onUpgrade中添加数据库更新要进行的操作。
private static final String CREATE_USER_TABLE = "create table tb_user (" + "id integer primary key autoincrement, " + "name varchar(16), " + "info text)"; @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub if (newVersion > oldVersion) { switch (oldVersion) { case 1: db.execSQL(CREATE_USER_TABLE); default: break; } } }
运行程序,点击按钮之后,在cmd窗口执行.table;就可以看到新建的表了。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件