白羽
2018-06-05
来源 :网络
阅读 898
评论 0
摘要:本文将带你了解Android数据存储之SQLite的使用技巧,希望本文对大家学Android有所帮助。
1 创建SQLiteOpenHelper的子类去创建数据库
public class DataBaseHelper extends SQLiteOpenHelper {
private static final String DB_NAME = "mydata.db"; //数据库名称
private static final int version = 1; //数据库版本
public DataBaseHelper(Context context) {
// SQLiteOpenHelper 的 参数 第一个为Context 其次是数据库名 然后是一个可选的游标工厂(通常是 Null)数据库版本
super(context, DB_NAME, null, version);
}
// 创建数据库时被调用,通常在该方法中创建数据库表以及添加应用使用到的初始数据
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
//创建一个数据库表
sqLiteDatabase.execSQL("CREATE TABLE Student(id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"name VARCHAR(10)," +
"stuNum VARCHAR(20)," +
"sex CHAR);");
//也可以写成:
/*String sql = "CREATE TABLE Student(id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(10),stuNum VARCHAR(20)," +
"sex CHAR);";
sqLiteDatabase.execSQL(sql);*/
}
// // 当数据库的版本号增加时调用
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
//每次成功打开数据库后首先被执行
public void onOpen(SQLiteDatabase db) {
super.onOpen(db);
}
}
2 使用数据库
2.1在onCreate中
//调用自定义的数据库帮助类
DataBaseHelper database = new DataBaseHelper(this);
//创建或打开一个读写数据库
db = database.getReadableDatabase();
2.2 声明
//声明
//SQLiteDatabase类提供使用数据库的方法 创建他的对象去操作数据库
private SQLiteDatabase db = null;
2.3插入数据
private void insert(String name,String stu_num,String sex){
//实例化一个ContentValues用来装载待插入的数据
ContentValues values = new ContentValues();
values.put(str1,name);
values.put(str2,stu_num);
values.put(str3,sex);
// 第一个参数为要插入的表名,
// 第二个为当values参数为空或者里面没有内容的时候,insert是会失败的(底层数据库不允许插入一个空行),为了防止这种情况,要在这里指定一个列名,到时候如果发现将要插入的行为空行时,就会将你指定的这个列名的值设为null,然后再向数据库中插入
// 第三个为插入的值
long id=db.insert("Student",null,values);
//一定记得关闭数据库 避免泄露内存
db.close();
}
也可以使用sql语句执行:
// String sql = "insert into Student(name,stu_num,sex) values ('XX','XX','XX')";//直接填值的
// String sql = "insert into Student(name,stu_num,sex) values (?,?,?),new Object[] {str1,str2,str3}";//填变量
// db.execSQL(sql);//执行SQL语句
2.4 修改数据
public int update(String name,String stu_num,String sex){
//实例化一个ContentValues用来装载待修改的数据
ContentValues values = new ContentValues();
//这里不能改名字
//values.put(str1,name);
values.put(str2,stu_num);
values.put(str3,sex);
//第一个为表名,第二个为修改的值,第三个为where 即修改的位置在哪 第四个为第三个中?的参数 即传入name的值给name这个列
//这里的参数也说明了,不能修改名字 因为传进来的name是存在数据库中的name 否则下面的这个代码就在数据库中找不要插入的位置
//要改名字得另起一个函数去根据别的参数去改
int number= db.update("Student",values,"name=?",new String[]{name});
//一定记得关闭数据库 避免泄露内存
db.close();
return number;
}
也可以用Sql语句执行。
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号