SQLite存在用戶的手機上
SQlite存儲時不區分類型
位置:data/data/包名/databases目錄下
工程中:
db包中建立helper類 //寫一個類繼承SQLiteOpenHelper,重寫構造函數(4個參數)與oncreate和onupgrade方法,構造函數建立數據庫,oncreate建立數據庫中的表,onupgrade修改表
domian包中建立userbean類 //無參和有參的構造函數,set,get方法,toString方法
dao包中建立dao類 //Dao裏面是增刪改查的方法,經過獲取數據庫對象,執行sql語句
test測試類或者activity中執行操做 //建立測試類繼承AndroidTestCase,清單文件中配置test節點,方法名以test開頭; 先經過helper對象獲取數據庫,再經過dao對象,執行操做 java
建立數據庫:
public MyHelper(Context context) { /** * Context context:環境 * String name:數據庫名字 * Cursorfactory factory:遊標工廠,null爲默認的 * version:數據庫版本從1開始 */ super(context, "users.db", null, 1); } public void onCreate(SQLiteDatabase db) { //能夠執行建立表的操做 db.execSQL("CREATE TABLE USER(id INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(20))"); } public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //修改表,下面的是添加一列,在testCreateDB方法中要執行到就要改變數據庫版本 db.execSQL("ALTER TABLE user ADD balance INTEGER" ); }在domain中建立Userbean
在dao中UserDao裏面是增刪改查的方法
private MyHelper myhelper; //構造函數 public UserDao(Context context) { myhelper = new MyHelper(context); // 建立helper類對象 }
public void insert(User user) { //增 MyHelper myhelper = new MyHelper(context); // 建立helper類對象 SQLiteDatabase db = myhelper.getWritableDatabase(); // 獲取可寫的數據庫 db.execSQL("INSERT INTO user(name, password) VALUES (?,?)", new Object[]{user.getName(), user.getPassword()} ); //執行sql語句 /*第二種插入操做 ContentValues values = new ContentValues(); //ContentValues相似於Map,用來裝載數據的集合 values.put("name", user.getName()); //向集合中裝入數據,鍵是列名,值是要插入的值 values.put("password", user.getPassword()); /** * 第二個參數能夠是null,也能夠是隨便的一個列名(用來插入null記錄) * 返回一個long,-1爲插入出錯 */ long i = db.insert("user", "id", values); //執行插入操做,指定代表,指定數據 */ db.close(); //關閉數據庫釋放資源 }