Android SQLite使用介绍


嵌入式关系型SQLite数据库与普通数据库的最大区别是:
嵌入式关系型SQLite数据库除了主键外,没有数据类型之分。即整型字段可以用来存放字符数据,反之字符串字段也可以用来存放整型值

SQLite使用方法步骤:

  1. 第一步:编写一个类并继承SQLiteOpenHelper;  
  2. 该类我认为有两个作用:第一:用来取得操作sql语句的对象  
  3.                         第二:用来管理数据库的版本,可以进行相应的更新  
  4. 简单的实例:  
  5. public class DBOpenHelperService extends SQLiteOpenHelper {  
  6.       
  7.     private static final String DATABASENAME = "smuoj.db"; //数据库名称  
  8.     private static final int DATABASEVERSION = 1;//数据库版本  
  9.   
  10.   
  11.     public DBOpenHelperService(Context context) {  
  12.         super(context, DATABASENAME, null, DATABASEVERSION);  
  13.     }  
  14.     @Override  
  15.     public void onCreate(SQLiteDatabase db) {  
  16.         db.execSQL("CREATE TABLE _person (personid integer primary key autoincrement, name varchar(20), age integer)");//执行有更改的sql语句  
  17.     }  
  18.     @Override  
  19.     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  
  20.         // TODO Auto-generated method stub  
  21.         db.execSQL("DROP TABLE IF EXISTS _person");  
  22.         onCreate(db);  
  23.     }  
  24. }  
  25. 第二步:根据要求编写相应的增删改查..的代码  
  26. 注意:dbOpenHelperService.getWritableDatabase();通过这个函数可以取得操作数据库的对象  
  27. 当调用这个方法时,如果数据库不存在,则会创建数据库,并执行Oncreate()方法  
  28.                    如果版本信息改变,则会执行onUpgrade()这个方法  
  29. 如:编写保存 与 查找  
  30. public class DB {  
  31.     private  DBOpenHelperService dbOpenHelperService;  
  32.     private SQLiteDatabase db ;  
  33.     public DB(Context context) {  
  34.         dbOpenHelperService = new DBOpenHelperService(context);  
  35.         db  = dbOpenHelperService.getWritableDatabase();  
  36.     }  
  37.     public  void save(Person person){  
  38.           
  39.         String sql = "insert into _person(name,age) values(?,?)";  
  40.         db.execSQL(sql,new Object[]{person.getName(),person.getAge()});  
  41.         db.close();  
  42.     }  
  43.     public List<Person> find(){  
  44.         List<Person> persons = new ArrayList<Person>();  
  45.         String sql = "select * from _person";  
  46.         Cursor cursor = db.rawQuery(sql,null);  
  47.         while(cursor.moveToNext()){  
  48.             Person person = new Person();  
  49.             person.setName(cursor.getString(cursor.getColumnIndex("name")));  
  50.             person.setAge(cursor.getInt(cursor.getColumnIndex("age")));  
  51.             persons.add(person);  
  52.         }  
  53.         return persons;  
  54.     }  
  55. }  

相关内容