SQLite—Android数据库


SQLite:轻量级数据库,SQLiteOpenHelper是一个帮助打开Android数据库的一个助手类
Oracle、MySql、SQLServer:大型数据库

大家都知道所谓的数据库,就是按照数据结构来组织、存储和管理数据的一个仓库

SQLite自带的增删改查方法
增加方法
public void insert(){
  //存放数据的键值对对象
  ContentValues cv=new ContentValues();
  //key表示表中的某一列名称,value为这一列上的数据
  cv.put("name", "张三");
  cv.put("phone", "15036198912");
  //获取数据库的可写对象
  SQLiteDatabase db=getWritableDatabase();
  //1.要插入的表  2.当values参数或不包含任何key-values对时该参数有效  3.要插入表的数据
  db.insert("student", null, cv);
 }
删除方法
public void delete(){
  SQLiteDatabase db=getWritableDatabase();
  //1.表名  2.条件  3.具体的条件
  //多个条件之间用and连接
  String clause="name=? and phone=?";
  String[] args={"张三","15036198912"};
  db.delete("student", clause, args);
 }
更新方法
public void update(){
  SQLiteDatabase db=getWritableDatabase();
  //1.要修改的表  2.要修改的内容  3.查找的条件  4.具体的查找条件
  ContentValues cv=new ContentValues();
  cv.put("name", "李四");
  String clause="name=?";
  String[] args={"张三"};
  db.update("student", cv, clause, args);
 }
查找方法
public Cursor query(){
  SQLiteDatabase db=getReadableDatabase();
  //查找到的信息会被数据库默认存放在Cursor对象中
  //如果想要使用这些数据,必须对Cursor对象进行解析
  Cursor c=db.query("student", null, null, null, null, null, null);
  return c;
 }
下面是一种简单的解析方法
Cursor c=db.query();
  if(c.moveToFirst()){
   do{
    //c.getString(要查找的列的下标)--根据某一列这个参数,查找某一列的内容,c.getInt()要查找的某一行
    //c.getColumnIndex(要查找的列的名字)--根据某一列的名字,查找某一列的下标,c.getColumnIndex("id")这个会依次获得id这一列的行数
    System.out.println(c.getString(c.getColumnIndex("name")));
   }while(c.moveToNext());
  }

//一般情况下数据库的名字、当前版本都是写在这个类中的public class MyHelper extends SQLiteOpenHelper
 public static final String DB_NAME="students.db";
 public static final int DB_VERSION=5;
 
 //1.上下文 2.数据库的名字 3.游标工厂 4.数据库的版本 -- 必须是一个正整数
 //创建数据库的
 public MyHelper(Context context) {
  super(context, DB_NAME, null, DB_VERSION);
  // TODO Auto-generated constructor stub
 }

//什么时候修改版本号
 //当数据库或者数据库中的表的原始内容发生改变时,必须要升级版本
 
 
 //类似于Activity中的onCreate方法,也是第一个运行的方法
 //创建数据库中的数据表
 //SQLiteDatabase -- 数据库文件对象
 @Override
 public void onCreate(SQLiteDatabase db) {
  // TODO Auto-generated method stub
  //新建 student
  //表中的数据有一个自增长的主键 int id,text name,text phone
  String create_table="create table student("
    +"id integer  primary key autoincrement,"
    +"name text,phone text);";
  //运行数据库语言
  db.execSQL(create_table);
// String create_table02="";
// db.execSQL(create_table02);
 
 
 }
 //升级数据库使用
 //1.数据库对象 2.旧版本号 3.新版本号
 @Override
 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  // TODO Auto-generated method stub
  if(oldVersion<newVersion){
   //删除已经存在的表
   db.execSQL("drop table student ");
   onCreate(db);
  }
 }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章