摘要:本文将带你了解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频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号