第二階段衝刺(2)
阿新 • • 發佈:2022-05-27
根據一個教程性的視訊學習了sqlite的語法,成功建立了資料庫,也可以對資料庫進行升級等操作,編寫了Dao方法。
public class DatabaseHelper extends SQLiteOpenHelper { public static SQLiteDatabase sqLiteDatabase; private static final String TAG = "DatabaseHelper"; /* context:上下文 name:資料庫名稱 factory:直譯遊標工廠,為null的時候使用預設值 version:版本號*/ public DatabaseHelper(@Nullable Context context) { super(context, Constants.DATABASE_NAME, null, Constants.VERSION_CODE); } //只有第一次建立資料庫時會呼叫這個方法 @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { //建立時的回撥 Log.d(TAG,"建立資料庫..."); //建立欄位 String sql = "create table "+ Constants.TABLE_NAME +"(_id integer,name varchar,age integer,salary integer)"; sqLiteDatabase.execSQL(sql); } @Overridepublic void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) { //升級資料庫時的回撥 Log.d(TAG,"升級資料庫..."); String sql; switch (oldVersion){ case 3://新增phone欄位 // sql = "alter table "+Constants.TABLE_NAME+" add phone integer"; // sqLiteDatabase.execSQL(sql);break; case 4://新增address欄位 sql = "alter table "+Constants.TABLE_NAME+" add address varchar"; sqLiteDatabase.execSQL(sql); break; case 5: break; } } }
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); DatabaseHelper helper = new DatabaseHelper(this); helper.getWritableDatabase(); } }View Code
public class Constants { public static final String DATABASE_NAME = "sunofbeaches.db"; public static final int VERSION_CODE = 5; public static final String TABLE_NAME = "employee"; }View Code
public class Dao { private static final String Tag = ""; private final DatabaseHelper mHelper; public Dao(Context context) { //建立資料庫 mHelper = new DatabaseHelper(context); } public void insert() { SQLiteDatabase db = mHelper.getWritableDatabase(); String sql = "insert into "+ Constants.TABLE_NAME +"(_id,name,age,salary,phone) values(?,?,?,?,?)"; db.execSQL(sql,new Object[]{1,"BillGates",60,1,110}); db.close(); } public void delete() { SQLiteDatabase db = mHelper.getWritableDatabase(); String sql = "delete from "+ Constants.TABLE_NAME +" where age = 60"; db.execSQL(sql); db.close(); } public void update() { SQLiteDatabase db = mHelper.getWritableDatabase(); String sql = "update "+ Constants.TABLE_NAME +" set salary = 2 where age = 60"; db.execSQL(sql); db.close(); } public void query() { SQLiteDatabase db = mHelper.getWritableDatabase(); String sql = "select * from "+ Constants.TABLE_NAME; Cursor cursor = db.rawQuery(sql,null); while (cursor.moveToNext()){ int index = cursor.getColumnIndex("name"); String name = cursor.getString(index); Log.d(Tag,"name == " + name); System.out.println(name+ "asdsadsadasdasdsxzcwqe2121412421421"); } cursor.close(); db.close(); } }View Code