1、數據庫的建立java
數據庫版本爲1android
//Ctrl+Shift+U:大寫 public static final String DATABASE_NAME ="zzw.db"; public static final int VERSION_CODE =1; public static final String TABLE_NAME ="employee";
DatabaseHelper.javasql
package com.example.databasedemo; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; import androidx.annotation.Nullable; public class DatabaseHelper extends SQLiteOpenHelper { 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 db) { //第一次建立數據庫時調用 //建立時的回調 Log.d(TAG,"建立數據庫...."); //建立數據庫表 String sql ="create table "+Constants.TABLE_NAME+"(_id integer,name varchar,age integer,salary integer)"; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //升級數據庫時的回調 Log.d(TAG,"升級數據庫...."); // String sql; switch (oldVersion){ case 1: sql ="alter table "+Constants.TABLE_NAME+" add phone integer"; db.execSQL(sql); break; case 2: break; } } }
第一次運行,無數據庫時的文件結構數據庫
建立數據庫app
//建立數據庫 DatabaseHelper helper =new DatabaseHelper(this); helper.getWritableDatabase();
建立表ide
public void onCreate(SQLiteDatabase db) { //第一次建立數據庫時調用 //建立時的回調 Log.d(TAG,"建立數據庫...."); //建立數據庫表 String sql ="create table "+Constants.TABLE_NAME+"(_id integer,name varchar,age integer,salary integer)"; db.execSQL(sql); }
建立數據庫後的文件結構測試
將zzw.db文件導出,並用SQLiteExpert打開this
與咱們要建立的字段數一致spa
2、數據庫的升級指針
對數據庫進行升級
修改版本號爲2
//Ctrl+Shift+U:大寫 public static final String DATABASE_NAME ="zzw.db"; public static final int VERSION_CODE =2; public static final String TABLE_NAME ="employee";
升級數據庫
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //升級數據庫時的回調 Log.d(TAG,"升級數據庫...."); // String sql; switch (oldVersion){ case 1: sql ="alter table "+Constants.TABLE_NAME+" add phone integer"; db.execSQL(sql); break; case 2: break; } }
成功添加了phone字段
3、Dao的增刪改查(SQL語句實現)
進行測試
MainActivity.java
package com.example.databasedemo; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; 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(); Dao dao =new Dao(getApplicationContext()); // dao.insert(); // dao.update(); // dao.query(); dao.delete(); } }
Dao.java
package com.example.databasedemo; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.util.Log; /** * 這個類用於對數據庫的增刪改查 */ public class Dao { private final DatabaseHelper mHelper; private static final String TAG="Dao"; public Dao(Context context){ //建立數據庫 //Ctrl+Alt+F,以後加回車,建立成員變量 mHelper = new DatabaseHelper(context); } public void insert(){ SQLiteDatabase db = mHelper.getWritableDatabase(); String sql="insert into "+Constants.TABLE_NAME+"(_id,name,age,salary,phone) values(?,?,?,?,?)"; Object []obj={1,"zzw",19,2,1234567890}; db.execSQL(sql,obj); db.close(); } public void delete(){ SQLiteDatabase db = mHelper.getWritableDatabase(); String sql="delete from "+Constants.TABLE_NAME+" where name = ?"; Object []obj={"zzw"}; db.execSQL(sql,obj); db.close(); } public void update(){ SQLiteDatabase db = mHelper.getWritableDatabase(); String sql="update "+Constants.TABLE_NAME+" set salary= ? where name = ?"; Object []obj={3,"zzw"}; db.execSQL(sql,obj); db.close(); } public void query(){ SQLiteDatabase db = mHelper.getWritableDatabase(); String sql="select * from "+Constants.TABLE_NAME+" where name = ?"; String []obj={"zzw"}; Cursor cursor = db.rawQuery(sql, obj); while (cursor.moveToNext()){ String name = cursor.getString(cursor.getColumnIndex("name")); String age = cursor.getString(cursor.getColumnIndex("age")); Log.d(TAG,"名字:"+name+"年齡:"+age); } cursor.close(); db.close(); } }
插入數據
修改數據
查看數據
刪除數據