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;

    }

}

最后数据库:

原文地址:https://www.cnblogs.com/j-y-s/p/14457699.html