2021年2月18日 记账本开发01
今天完成了数据库的建立,
CashDB:
package bjfu.it.sun.cashbook; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import androidx.annotation.Nullable; public class CashDB extends SQLiteOpenHelper { public static final String TABLE_NAME="cash";//表名 public static final String CONTENT="context";//花费的内容,表的列 public static final String COAST="coast";//花费的钱 public static final String ID="_id";//id public static final String TIME="time";//时间 //构造方法 public CashDB(@Nullable Context context) { //第一个参数context,第二个是库名,第三个factory传一个空,第四个版本号第一次创建所以是1 super(context, "cash", null, 1); } //创建数据库 @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table "+TABLE_NAME+"(" +ID+" INTEGER PRIMARY KEY AUTOINCREMENT," +CONTENT+" TEXT NOT NULL," +COAST+" TEXT NOT NULL," +TIME +" TEXT NOT NULL)" ); } //更新 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
在MainActivity里面测试:
package bjfu.it.sun.cashbook; import androidx.appcompat.app.AppCompatActivity; import android.content.ContentValues; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import java.text.SimpleDateFormat; import java.util.Date; public class MainActivity extends AppCompatActivity { private CashDB cashDB ;//创建数据库对象 private SQLiteDatabase dbWriter;//创造可添加的选项 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //实例化 cashDB=new CashDB(this); //获取到当前可添加的权限 dbWriter=cashDB.getWritableDatabase();//写入权限 addDB(); } //创建方法用于添加具体内容 public void addDB(){ ContentValues cv=new ContentValues() ; cv.put(CashDB.CONTENT ,"Hello"); cv.put(CashDB.COAST ,"33"); cv.put(CashDB.TIME ,getTime()); //写入数据库 dbWriter.insert(CashDB.TABLE_NAME ,null,cv) ; } //获取当前设备的时间 public String getTime(){ SimpleDateFormat format =new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss") ; Date curData=new Date();//实例化 String str =format .format(curData);//获取时间 return str; } }
最后数据库: