• 【团队】 冲刺一(7/10)


    昨天所做:保存新建账单的数据到SQLite

    代码是冲刺完才粘的,可能会和所说的有所不同

    package com.example.accountbook;
    
    import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.database.sqlite.SQLiteStatement;
    import android.util.Log;
    import android.widget.Toast;
    
    import java.util.List;
    
    public class DB extends SQLiteOpenHelper {
    
        private static final String DB_NAME="accountbook";
        private static final int DB_VERSION=1;
        private static DB mHelper=null;
        private SQLiteDatabase mDB=null;
        private static String TABLE_NAME="默认账本";
        private static final String TABLE_NAME_BOOK = "book";
    
        public DB(Context context)
        {
            super(context,DB_NAME,null,DB_VERSION);
        }
        public DB(Context context ,int version)
        {
            super(context,DB_NAME,null,version);
        }
    
        public SQLiteDatabase getMDB()
        {
            return mDB;
        }
    
        public void setTableName(String TABLE_NAME)
        {
            this.TABLE_NAME = TABLE_NAME;
        }
    
        //利用单例模式获取数据库帮助器的唯一实例
        public static DB getInstance(Context context,int version)
        {
            if (version>0&&mHelper==null)
            {
                mHelper=new DB(context, version);
            }else if (mHelper==null)
            {
                mHelper=new DB(context);
            }
            return mHelper;
        }
    
        //获取账本名
        public String getTableName()
        {
            return TABLE_NAME;
        }
    
        //打开数据库的读连接
        public SQLiteDatabase openReadLink()
        {
            if (mDB==null||!mDB.isOpen())
            {
                mDB=mHelper.getReadableDatabase();
            }
            return mDB;
        }
        //打开数据库的写连接
        public SQLiteDatabase openWriteLink()
        {
            if (mDB==null||!mDB.isOpen())
            {
                mDB=mHelper.getWritableDatabase();
            }
            return mDB;
        }
        //关闭数据库连接
        public void closeLink()
        {
            if (mDB!=null&&mDB.isOpen())
            {
                mDB.close();
                mDB=null;
            }
        }
        //创建数据库,执行建表语句
        public void onCreate(SQLiteDatabase db)
        {
            String drop_sql="DROP TABLE IF EXISTS "+TABLE_NAME+";";
            db.execSQL(drop_sql);
            String create_sql="CREATE TABLE IF NOT EXISTS "+TABLE_NAME+" ("
                    +"id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"
                    +"money double NOT NULL,"
                    +"choose VARCHAR NOT NULL,"
                    +"sort varchar NOT NULL,"
                    +"time varchar NOT NULL,"
                    +"remark varchar"
                    +")";
            db.execSQL(create_sql);
            Log.d("create","建表成功"+TABLE_NAME_BOOK);
    
        }
    
    
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    
        }
    
        //添加账单
        public long insert(BillBean billbean)
        {
            long result = -1;
            ContentValues cv = new ContentValues();
            cv.put("money",billbean.getMoney());
            cv.put("choose",billbean.getChoose());
            cv.put("sort",billbean.getSort());
            cv.put("time",billbean.getTime());
            cv.put("remark",billbean.getRemark());
            result = mDB.insert(TABLE_NAME,"",cv);
            if(result >= 0)
            {
                Log.i("add", "添加账单成功");
            }
            return result;
        }//检测某个表是否存在,存在返回false,不存在返回true
        public boolean tableIsExist(String bookname){
            Log.d("exit","开始检测表 "+bookname+" 是否存在");
            if(bookname == null){
                Log.d("exit","表 "+bookname+" 名字为空");
                return false;
            }
            Cursor cursor = null;
            try {
                String sql = "select count(*) from "+TABLE_NAME_BOOK+" where bookname ='"+bookname+"' ";
                cursor = mDB.rawQuery(sql, null);
                if (cursor.getInt(0)==0) {
                    Log.d("exit","表 "+bookname+" 检测返回值 false");
                    return false;
                }
    
            } catch (Exception e) {
                // TODO: handle exception
            }
            Log.d("exit","表 "+bookname+" 检测返回值 true");
            return true;
        }
    //获取表中数据的数量
        public long getCount(String tablename)
        {
            String select_sql = "select count(*) from "+tablename;
            SQLiteStatement statement = mDB.compileStatement(select_sql);
            long count = statement.simpleQueryForLong();
            return count;
        }
    
    }

    今天将做:将SQLite中的数据显示到主页面

    遇到问题:

    忘了截图

    报错db是空指针

    重写onResume()和onPause()

  • 相关阅读:
    Maven3路程(一)用Maven创建第一个web项目(1)
    ECLIPSE下SVN的创建分支/合并/切换使用
    Oracle 客户端免安装数据库连接
    如何用Maven创建web项目(具体步骤)
    使用Eclipse构建Maven项目 (step-by-step)
    Maven安装配置
    动画基础(隐式动画)
    CA*Layer(CAReplicatorLayer--)
    CA*Layer(CATransformLayer--CAGradientLayer)
    CA*Layer(CAShapeLayer--CATextLayer)
  • 原文地址:https://www.cnblogs.com/gothic-death/p/10933329.html
Copyright © 2020-2023  润新知