標籤:.exe sql語句 使用 prot 繼承 created err 產生 min
首先Database 資料庫建立
1.建立一個Database包,包內建立一個MyDatabaseHelper繼承DatabaseHelper類,並實現裡面的方法!
3 import android.content.Context; 4 import android.database.sqlite.SQLiteDatabase; 5 import android.database.sqlite.SQLiteOpenHelper; 6 import android.widget.Toast; 7 8 /** 9 * 資料庫協助類10 * Created by Administrator on 2017/12/6.11 */12 13 public class MyDatabaseHelper extends SQLiteOpenHelper{14 15 public static final String CREATE_USERINFO="CREATE TABLE USERINFO(" //建立表的SQL語句16 + "id integer primary key autoincrement, " //id 設定主鍵17 + "username text, " //使用者名稱18 + "age integer, " //年齡19 + "sex text, " //性別20 + "mAutograph text)"; //簽名21 private Context mContext; 22 23 24 /**25 * 產生的構造方法26 * @param context 獲得上下文27 * @param name28 * @param factory29 * @param version30 */31 public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {32 super(context, name, factory, version);33 mContext=context; //擷取上下文34 }35 36 37 /**38 * 實現方法39 * 建立資料庫40 * @param db41 */42 @Override43 public void onCreate(SQLiteDatabase db) {44 db.execSQL(CREATE_USERINFO); //建立資料庫,參數為創表語句45 Toast.makeText(mContext,"建立表成功",Toast.LENGTH_LONG).show();46 }47 48 /**49 * 實現方法50 * 升級資料庫51 * @param sqLiteDatabase52 * @param i53 * @param i154 */55 @Override56 public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {57 58 }59 }
2.升級資料庫,
1 /** 2 * 實現方法 3 * 升級資料庫 4 * @param sqLiteDatabase 5 * @param i 6 * @param i1 7 */ 8 @Override 9 public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {10 sqLiteDatabase.execSQL("drop table if exists CREATE_USERINFO"); //刪除資料庫11 sqLiteDatabase.execSQL("drop table if exists CREATE_CONTACT"); //刪除資料庫12 }13 14 private MyDatabaseHelper mDBhelper; //聲明資料庫協助類變數15 @Override16 protected void onCreate(Bundle savedInstanceState) {17 super.onCreate(savedInstanceState);18 setContentView(R.layout.activity_main);19 mDBhelper=new MyDatabaseHelper(this,"this,UserInfo",null,3); //3代表升級20 }25 /**26 * 啟動時建立資料庫27 */28 @Override29 protected void onStart() {30 super.onStart();31 mDBhelper.getWritableDatabase(); //獲得可寫的資料庫,會建立helper資料庫32 }
3.查詢資料庫
1 @Override 2 public List<UserInfo> getUserInfo(MyDatabaseHelper db) { 3 SQLiteDatabase sqlhelper=db.getWritableDatabase(); 4 Cursor cursor=sqlhelper.query("USERINFO",null,null,null,null,null,null); 5 UserInfo user; 6 List<UserInfo> list=new ArrayList<>(); 7 if(cursor.moveToFirst()){ 8 do{ 9 String name=cursor.getString(cursor.getColumnIndex("username"));10 String age=cursor.getString(cursor.getColumnIndex("age"));11 String sex=cursor.getString(cursor.getColumnIndex("sex"));12 String phone=cursor.getString(cursor.getColumnIndex("Phone"));13 user=new UserInfo(name,age,sex,phone);14 list.add(user);15 }while (cursor.moveToNext());16 }17 cursor.close();18 return list;19 }
4.插入資料庫 MyDatabaseHelper database繼承至DatabaseHelper
1 @Override 2 public void setUserInfo(MyDatabaseHelper database,UserInfo user) { 3 SQLiteDatabase db=database.getWritableDatabase(); 4 ContentValues values=new ContentValues(); 5 values.put("username",user.getName()); 6 values.put("age",user.getAge()); 7 values.put("sex",user.getSex()); 8 values.put("Phone",user.getPhone()); 9 db.insert("USERINFO",null,values);10 }
5.修改資料庫
1 @Override2 public void DelectUserInfo(MyDatabaseHelper database) {3 SQLiteDatabase sqLiteDatabase=database.getWritableDatabase();4 ContentValues values=new ContentValues();5 values.put("price",10.99); //所需要修改的欄位 price 欄位 10.99值6 7 //修改資料 ?站位符 new String[]{修改?資料}8 sqLiteDatabase.update("USERINFO",values,"name=?",new String[]{"TheDaviciCode"});9 }
6.刪除資料
1 @Override2 public void DelectUserInfo(MyDatabaseHelper database) {3 //刪除ID小於5的資料4 SQLiteDatabase db=database.getWritableDatabase();5 db.delete("USERINFO","id > 5",new String[]{"5"});6 }
SQLite 使用(創、升、增、刪、改、查)