Android SQLite数据库使用示例
2017-03-05 12:27
351 查看
支持的 数据类型有 null,integer,float,double,long,text,char ,varchar,date,time,timestamp(时间戳)等等
char的长度是不可变的,而varchar的长度是可变的,也就是说,定义一个char[10]和varchar[10],如果存进去的是‘csdn’,那么char所占的长度依然为10,除了字符‘csdn’外,后面跟六个空格,而varchar就立马把长度变为4了,取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的
参考点击打开链接
继承 SQLiteOpenHelper
//如果数据库文件不存在,只有onCreate()被调用(该方法在创建数据库时被调用一次)。
// 如果数据库文件存在,且创建SQLiteOpenHelper 对象指定版本高于已有版本时,
// 会调用onUpgrade()方法升级数据库,并更新版本号。
public class DataBaseHelper extends SQLiteOpenHelper {
private Context context;
private String name;//数据库名字
private static final int VERSION = 1;
public DataBaseHelper(Context context, String name) {
this(context, name, VERSION);
}
public DataBaseHelper(Context context, String name,
int version) {
this(context, name, null, version);
}
public DataBaseHelper(Context context, String name,
SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
//SQLiteDatabase 对象作为参数,根据需要对这个对象填充表和初始化数据
@Override
public void onCreate(SQLiteDatabase db) {
//execSQL用于执行SQL语句
//if not exists,如果不存在就创建
//id integer primary key autoincrement,id 主键自增长
//user(id integer primary key autoincrement,name varchar(20)),表名字段类型
db.execSQL("create table if not exists " +
"user(id integer primary key autoincrement,name varchar(20),age integer)");
}
//三个参数,一个 SQLiteDatabase 对象,一个旧的版本号和一个新的版本号
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
char的长度是不可变的,而varchar的长度是可变的,也就是说,定义一个char[10]和varchar[10],如果存进去的是‘csdn’,那么char所占的长度依然为10,除了字符‘csdn’外,后面跟六个空格,而varchar就立马把长度变为4了,取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的
参考点击打开链接
继承 SQLiteOpenHelper
//如果数据库文件不存在,只有onCreate()被调用(该方法在创建数据库时被调用一次)。
// 如果数据库文件存在,且创建SQLiteOpenHelper 对象指定版本高于已有版本时,
// 会调用onUpgrade()方法升级数据库,并更新版本号。
public class DataBaseHelper extends SQLiteOpenHelper {
private Context context;
private String name;//数据库名字
private static final int VERSION = 1;
public DataBaseHelper(Context context, String name) {
this(context, name, VERSION);
}
public DataBaseHelper(Context context, String name,
int version) {
this(context, name, null, version);
}
public DataBaseHelper(Context context, String name,
SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
//SQLiteDatabase 对象作为参数,根据需要对这个对象填充表和初始化数据
@Override
public void onCreate(SQLiteDatabase db) {
//execSQL用于执行SQL语句
//if not exists,如果不存在就创建
//id integer primary key autoincrement,id 主键自增长
//user(id integer primary key autoincrement,name varchar(20)),表名字段类型
db.execSQL("create table if not exists " +
"user(id integer primary key autoincrement,name varchar(20),age integer)");
}
//三个参数,一个 SQLiteDatabase 对象,一个旧的版本号和一个新的版本号
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
//sqlite 使用 private void sqlite() { DataBaseHelper dataBaseHelper = new DataBaseHelper(this, "text1"); SQLiteDatabase db = dataBaseHelper.getWritableDatabase(); doInsert(db); doDelete(db); doUpdate(db); doQuery(db); } private void doInsert(SQLiteDatabase db) { //插入 数据,null代表id自增长 db.execSQL("insert into person values(null, ?)", new Object[]{"小明"}); //另一种 方式 ContentValues values = new ContentValues(); values.put("name", "小明"); //第一个参数是表名, // 第二个参数通常都用不到,直接传null, // 第三个参数则是一个封装了待存储数据的 long id = db.insert("person", null, values); } private void doDelete(SQLiteDatabase db) { //删除数据 db.execSQL("delete from person where age=?", new Object[]{""}); //另一种 方式 db.delete("person", "age=?", new String[]{null}); } private void doUpdate(SQLiteDatabase db) { //修改数据 db.execSQL("update person set name=小米 where id=2"); //另一种 方式 ContentValues contentValues = new ContentValues(); contentValues.put("name", "小米"); db.update("person", contentValues, "id=?", new String[]{"2"}); } private void doQuery(SQLiteDatabase db) { //android 中通过query获取cursor进行查询 //获取查询游标 Cursor cursor = db.query("person", new String[]{"id", "sname", "sage", "ssex"}, "id=?", new String[]{"1"}, null, null, null); while (cursor.moveToNext()) { String name = cursor.getString(cursor.getColumnIndex("name")); String age = cursor.getString(cursor.getColumnIndex("age")); } //关闭 查询游标 cursor.close(); }
相关文章推荐
- Android sqlite数据库操作通用框架AHibernate(一)-CRUD示例和使用步骤
- Android数据库SQLite的使用示例
- Android 高手进阶教程(十三)之----Android 数据库SQLiteDatabase的使用!
- Android中如何使用命令行查看内嵌数据库sqlite3
- android中使用sqlite、复制assets下的数据库到SD卡、支持大于1M的文件
- 【SQLiteDatabase】使用sqlite3工具在黑屏中查看android程序的内置数据库
- Android数据库编程:SqLiteOpenHelper的使用
- SQLite3命令行使用查询android的telephone数据库
- Android 高手进阶教程(十二)----Android数据库SQLiteDatabase的使用!!
- android中使用sqlite、复制assets下的数据库到SD卡、支持大于1M的文件
- android数据库编程----SqLiteOpenHelper的使用
- Android--类--SQLiteOpenHelper使用示例--01
- android SQLite使用SQLiteOpenHelper类对数据库进行操作
- android SQLite数据库基本操作示例
- Android 高手进阶教程(十三)之----Android 数据库SQLiteDatabase的使用!!
- Android 开发中使用 SQLite 数据库
- android:SQLite3命令行使用查询android的telephone数据库
- Android开发中使用SQLite 数据库
- <转载>Android中如何使用命令行查看内嵌数据库SQLite3
- Android 开发中使用 SQLite 数据库