网友通过本文主要向大家介绍了安卓sqlite数据库,安卓sqlite增删改查,安卓sqlite,安卓sqlite教程,安卓sqlite汉化版等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
安卓第四天笔记-Sqlite,安卓第四天-sqlite
安卓第四天笔记-Sqlite
1.数据库的创建运行与更新
1.1.创建一个类继承SqliteOpenHelper
1.2.创建构造方法
/** * 数据库创建类 * @author 刘楠 * * 2016-2-20上午10:04:34 */ public class DbSqliteOpenHelper extends SQLiteOpenHelper { /** * * @param context 上下文 * @param name 数据库的名字如: students.db * @param factory 游标工厂 ,类似JDBC中的ResultSet中的hasNext(); * @param version 数据库的版本 */ public DbSqliteOpenHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } /** * 当数据库被创建时,执行, * 只会执行一次 */ @Override public void onCreate(SQLiteDatabase db) { } /** * 当数据版本升级时执行, * 数据版本只能升不能降 从1开始 * 这里常用于更改数据库中的表的结构,如添加列,删除列,之类的,创建新的表 */ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
1.3.更改构造方法
/** * * @param context 上下文 * @param name 数据库的名字如: students.db * @param factory 游标工厂 ,类似JDBC中的ResultSet中的hasNext(); * @param version 数据库的版本 */ public DbSqliteOpenHelper(Context context) { super(context, "student.db", null, 1); } 更改后 /** * * @param context 上下文 * @param name 数据库的名字如: students.db * @param factory 游标工厂 ,类似JDBC中的ResultSet中的hasNext(); * @param version 数据库的版本 这里的版本必须大于0,如果为0就会报错 */ public DbSqliteOpenHelper(Context context) { super(context, "student.db", null, 1); }
源码中的解释,数据库版本必须大于等于0,否则会抛出异常
将数据库版本设置为0,运行
不能降版本
1.4.在onCreate方法中创建数据库表
/** * 当数据库被创建时,执行, * 只会执行一次 */ @Override public void onCreate(SQLiteDatabase db) { //创建数据库表 //sql create table students(_id integer primary key, name varchar(30)) db.execSQL("create table students(_id integer primary key, name varchar(30))"); Log.i(TAG, "onCreate 方法执行了"); }
1.5.在Activity中实例化
/** * 数据库初始化 * @author 刘楠 * * 2016-2-20上午10:27:04 */ public class MainActivity extends Activity { private static final String TAG = "MainActivity"; private DbSqliteOpenHelper helper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //实例化 helper = new DbSqliteOpenHelper(this); Log.i(TAG, "helper 实例化"); //执行下方的代码后才会创建数据库 helper.getWritableDatabase(); } }
创建数据库后并不会被创建,只有执行了,getReadDatabase或者getWriteDatabase(),
才会执行onCreate中的方法
运行查看LOG
1.6.数据已经创建,查看数据库
将数据库文件导出到桌面
SQLite Expert Professional 3打开
1.7.修改数据库版本,同是添加一列
/** * 当数据版本升级时执行, * 数据版本只能升不能降 从1开始 * 这里常用于更改数据库中的表的结构,如添加列,删除列,之类的,创建新的表 */ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.i(TAG, "onUpgrade 方法执行了"); //sql alter table students add gender varchar(10) //添加列 db.execSQL("alter table students add gender varchar(10)"); }
查看日志
1.8.导出数据库中的文件再次查看
列已经添加成功
2.传统方式操作数据库
使用sql来操作数据库
/** * 传统数据库操作工具类 * @author 刘楠 * * 2016-2-20下午12:19:16 */ public class StudentDao { private static final String TAG = "StudentDao"; /* * 操作数据库类 */ private DbSqliteOpenHelper helper; public StudentDao(Context context){ helper = new DbSqliteOpenHelper(context); } /** * 插入方法 * @param name 姓名 * @param gender 性别 * @param stuno 学号 */ public void insert(String name,String gender,String stuno){ //获取数据 SQLiteDatabase db = he