Android之SQLiteOpenHelper
来源:互联网 发布:2017大数据产业峰会 编辑:程序博客网 时间:2024/06/08 19:28
本文主要是记录一些零碎的知识点
SQLiteOpenHelper可以帮我们创建和打开数据库,这样就可以避免重复的建表带来的数据覆盖的麻烦,而且在数据库更新时也很方便
测试界面就是两个按钮,这里就不写了,有两个onClick事件,一个写数据,一个读数据
DbHelper:就一个表,只有一个id字段,一个name字段,如果有几个表,就在onCreate里多写几个ddl语句就好
import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.util.Log;public class DbHelpler extends SQLiteOpenHelper { public JohnDbHelpler(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context,name,factory,version); } @Override public void onCreate(SQLiteDatabase db) { String ddl="create table users (id integer primary key autoincrement,uname text)"; db.execSQL(ddl); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { String ddl="create table users (id integer primary key autoincrement,uname text)"; Log.i("john","upgrade....."); }}看看MainActivity里的实现
import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.net.Uri;import android.os.Environment;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import java.io.File;public class MainActivity extends AppCompatActivity { private SQLiteDatabase db; private JohnDbHelpler dbHelpler; private int i=0; private File sdcardDir; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sdcardDir= Environment.getExternalStorageDirectory(); dbHelpler=new DbHelpler(this,sdcardDir.getAbsolutePath()+"/john1.db",null,2); db=dbHelpler.getWritableDatabase(); Log.i("<span style="font-family: Arial;">MainActivity </span><span style="font-family: Arial;">", sdcardDir.getAbsolutePath() + "...............................");</span> } @Override protected void onDestroy() { super.onDestroy(); db.close(); } public void writeDB(View view) { String sql="insert into users (uname) values (?)"; try { db.beginTransaction(); db.execSQL(sql, new Object[]{"Tom" + i++}); db.setTransactionSuccessful(); } catch (RuntimeException e){ } finally { db.endTransaction(); } } public void readDB(View view) { String sql="select uname,id from users where id>?"; Cursor c=db.rawQuery(sql,new String[]{"2"}); while (c.moveToNext()){ String uname=c.getString(0); int id=c.getInt(c.getColumnIndex("id")); Log.i("MainActivity","uanme:"+uname+"........"+id); } }Dbhelper里的onUpgrade只会在DbHelpler创建时,最后一个参数版本号变化时才会执行
其他的增删改查都是db可以操作的,跟普通数据库一样
0 0
- Android之SQLiteOpenHelper
- Android数据库之SQLiteOpenHelper
- Android之SQLiteOpenHelper
- Android之SQLiteOpenHelper
- Android之SQLiteOpenHelper
- Android之SQLiteOpenHelper
- Android之使用SQLiteOpenHelper
- Android之SQLiteOpenHelper的使用
- Android初学者之SQLiteOpenHelper类
- Android SQLite操作之“SQLiteOpenHelper”
- Android中SQLite之SQLiteOpenHelper详解
- Android中SQLite之SQLiteOpenHelper详解
- Android SQLite数据库之三,SQLiteOpenHelper
- 【android】SQLite数据库之SQLiteOpenHelper与SQLiteDatabase
- Android之Sqlite,SQLiteOpenHelper的使用
- Android:SQLiteOpenHelper
- android:SQLiteOpenHelper
- android sqliteopenhelper
- 如何用 sysdig 监控和排查 Linux 服务器
- 第十天 media 视频 音频
- RadioButton和CheckBox的区别
- Netty初探
- 流过的是自己的岁月,浪费的是自己的青春
- Android之SQLiteOpenHelper
- 第6章 会话控制(session与cookie)
- Unity脚本事件执行的顺序
- 折半查找法的两种实现
- [C]LeetCode:Counting Bits
- <LeetCode> 292. Nim Game
- Android使用Pull方式解析XML
- 在Ubuntu上安装NTL
- 数据结构之查找算法总结笔记