第四天

1. android数据库存储方案:
    SharedPreferences:  属性文件    应用程序配置,数据库联接参数配置
    数据库(SQLite):     数据库文件  存相对较为复杂数据     
    Content Provider:   内容提供者   接口(联系人等)
    文件:               普通文件     txt,avi,....


2. 数据库概述:
  SQLite, 轻量级的嵌入式数据库.
  SQLite数据库文件存储位置:  /data/data/包名(com.icss)/数据库文件名.db3
  数据类型: NULL, Integer, real, text,blob


3. 重要的类:
  SQLiteDataBase: sqlite的数据库操作类


  第一步创建SQLiteDataBase:
   SQLiteDataBase db=SQLiteDatabase.openOrCreateDatabase("数据库名",权限,游标工厂);
  第二步创建表:
   sql="create table 表名(_id integer primary key autoincrement,列名 类型)";
   db.execSQL(sql);


  注意: 主键列的列名必须为_id


4. SQLiteDatabase对象常用的方法
    execSQL(sql语句);      //执行sql指令(增删改建表索引约束触发器)
    Cursor rawQuery(sql语句, 条件语句);  //执行查询


    Cursor对象操作最重要的方法:
     MoveToNext();   //让游标向下运动一条记录
                    //如果有下一条记录,则返回true, 否则false
     getString("列名");




5. ListView 组件
    (1)在主界面里面加入一个ListView控件
    (2)增加一个布局文件,这个文件用来控制每一项的外观    item.xml
         <?xml version="1.0" encoding="utf-8"?>
         <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal">


    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="30dp"
        android:text="TextView" />


    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="30dp"
        android:text="TextView" />


</LinearLayout>
    (3)编码:
        SimpleCursorAdapter adapter=new SimpleCursorAdapter
          上下文          每一项的布局      游标             表的字段名                          布局文件中的显示组件的id     
(Main.this,     R.layout.item,      c,          new String[]{"_id","uname"},     new int[]{R.id.textView1,R.id.textView2} );

//让listView1绑定一个适配器   SimpleCursorAdapter
ListView lv=(ListView)Main.this.findViewById(R.id.listView1);
lv.setAdapter(adapter);




6. SQLiteOpenHelper: 数据库操作帮助类, 根据程序版本来更新数据库,   
      onCreate():
      onUpdate():


      getWritableDatabase():取出可写的数据库对象
      getReadableDatabase(): 取出只读的数据库对象  


7.  封装类:
   public class DataBaseOpenHelper extends SQLiteOpenHelper {
        private static final String DBNAME="数据库名.db3";
             private static final int VERSION=1;
public DataBaseOpenHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, null, version);
}
public DataBaseOpenHelper(Context context) {
this(context,DBNAME,null,VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("建表,索引,视图,触发器等的语句");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("drop table if exists 表名");
onCreate(db);
}
}


    
  































你可能感兴趣的:(数据库,android,ListView,sqlite,layout,Integer)