SQLite資料庫簡單應用

來源:互聯網
上載者:User

標籤:

  SQLite,是一款輕型的資料庫,在安卓手機中內建,SQLite庫可以解析大部分標準SQL語言,下面記錄簡單的使用方式,如有哪位仁兄路過發現有錯誤,請幫我指出,以便我改正。下面是一個簡單的例子,主要是方便與自己學習記憶。

    1.首先建一個工具類DBHelper 繼承SQLiteOpenHelper 類。定義DBHelper構造器和重載onCreate()和onUpdgrade()方法。

  onCreate():用於建立資料庫使用;

  onUpdgrade():用於更新資料庫使用;

 1 public class DBHelper extends SQLiteOpenHelper { 2  3     //構造器,參數super(上下文,資料庫名稱,遊標工廠,資料庫版本) 4     public DBHelper(Context context) { 5         super(context, Constant.DB_NAME, null, Constant.VERSION); 6     } 7  8     @Override 9     public void onCreate(SQLiteDatabase db) {10         db.execSQL("CREATE table IF NOT EXISTS ‘"+Constant.USER_TABLE+"‘"11                 + " (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, img TEXT)");12     }13 14     @Override15     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {16 17     }18 }

  2.建一個常量類(非必須,可選)Constant,用來存放一些相關的常量,如資料庫的名字,版本號碼等:

1 public class Constant {2     public static final String DB_NAME = "uu.db";//資料庫名稱3     public static final int  VERSION = 1;//資料庫版本4     public static final String USER_TABLE = "user";//使用者資料表名稱5 }

  3.實現對資料表的映射,即Bean類(如果我沒記錯),用於構造User 對象。

 1 public class User { 2     private Long id; 3     private String name; 4     private String img; 5  6     public Long getId() { 7         return id; 8     } 9 10     public void setId(Long id) {11         this.id = id;12     }13 14     public String getName() {15         return name;16     }17 18     public void setName(String name) {19         this.name = name;20     }21 22     public String getImg() {23         return img;24     }25 26     public void setImg(String img) {27         this.img = img;28     }29 30     @Override31     public String toString() {32         return "User{" +33                 "id=" + id +34                 ", name=‘" + name + ‘\‘‘ +35                 ", img=‘" + img + ‘\‘‘ +36                 ‘}‘;37     }38 }

  4.建立Dao類,即對使用者表(user)完成增、刪、改、查操作的額方法,其他類在根據需要直接調用方法即可。

/** * Created by Administrator on 2015/8/1. * 用於實現增刪改查操作 */public class UserDao {    private DBHelper dbHelper = null;    private SQLiteDatabase db = null;    private ContentValues values = null;    public  UserDao(Context context){        dbHelper = new DBHelper(context);    }    /**     * 增加一個使用者     * @param user     * @return     */    public long addUser(User user){        //擷取SQLiteDatabase進行資料庫操作,開啟寫操作        db = dbHelper.getWritableDatabase();        //參數綁定對象        values = new ContentValues();        values.put("name",user.getName());        values.put("img", user.getImg());        //儲存操作,在此返回的iD並不是實際的ID,只是該記錄所在的行號,若從未刪除則是正確的        long id = db.insert(Constant.USER_TABLE,null,values);        //釋放資源        dbHelper.close();        return id;//        String sql = "insert into user(name,img) values(‘"+name+"‘,‘"+img+"‘)";//        SQLiteDatabase db = dbHelper.getWritableDatabase();//        db.execSQL(sql);    }    /**     *根據ID刪除一個使用者     * @param id     * @return     */    public void  deleteUser(String id){        db = dbHelper.getWritableDatabase();        db.delete(Constant.USER_TABLE,"_id= "+id,null);        db.close();    }    /**     * 更新一個對象     * @param user     * @return     */    public int updateUser(User user){        db = dbHelper.getWritableDatabase();        ContentValues values = new ContentValues();        values.put("name",user.getName());        values.put("img",user.getImg());        int k= db.update(Constant.USER_TABLE,values,"_id="+user.getId(),null);        db.close();        return k;    }    /**     * 根據ID查詢使用者資訊     * @param uesr_id     * @return     */    public User findUserByUserId(String uesr_id){        return null;    }    /**     * 擷取所有使用者     * @return     */    public List<User> findAllUsers(){        db = dbHelper.getReadableDatabase();        String sql = "select _id,name,img from "                + Constant.USER_TABLE + " order by _id desc";        Cursor cursor = db.rawQuery(sql, null);        List<User> list = new ArrayList<User>();        //用下面的效果較好,但是要先判斷是否有資料。然後數組開闢一定的空間,由cursor.getCount()定        //List<User> list = new ArrayList<User>(cursor.getCount());        while (cursor.moveToNext()) {            User user = new User();            user.setId(cursor.getLong(0));            user.setName(cursor.getString(1));            user.setImg(cursor.getString(2));            list.add(user);        }        cursor.close();//關閉遊標        db.close();        return list;    }}

 

SQLite資料庫簡單應用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.