您的位置:首页 > 移动开发 > Android开发

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) {

}
}


//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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: