美文网首页
Android:数据库的简单使用

Android:数据库的简单使用

作者: 春暖花已开 | 来源:发表于2019-02-13 13:51 被阅读29次
ThirdActivity
import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.tencent.formalandroid.R;
import com.tencent.formalandroid.other.DatabaseHelper;

public class ThirdActivity extends Activity implements View.OnClickListener {

    private Button mAddButton;
    private Button mDeleteButton;
    private Button mUpdateButton;
    private Button mQueryButton;
    private DatabaseHelper mDatabaseHelper;
    private SQLiteDatabase mSqLiteDatabase;

    private static final String TAG = ThirdActivity.class.getSimpleName();

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_third);

        initViews();

        mDatabaseHelper = new DatabaseHelper(this);
        mSqLiteDatabase = mDatabaseHelper.getWritableDatabase();
    }

    /**
     * UI控件
     */
    private void initViews() {
        mAddButton = findViewById(R.id.button_add);
        mAddButton.setOnClickListener(this);

        mDeleteButton = findViewById(R.id.button_delete);
        mDeleteButton.setOnClickListener(this);

        mUpdateButton = findViewById(R.id.button_update);
        mUpdateButton.setOnClickListener(this);

        mQueryButton = findViewById(R.id.button_query);
        mQueryButton.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.button_add: {

                // TODO: 待优化,需要在子线程中进行IO操作
                ContentValues values = new ContentValues();
                values.put(mDatabaseHelper.USER_NAME, "老张");
                values.put(mDatabaseHelper.AGE, "18岁");

                long index = mSqLiteDatabase.insert(mDatabaseHelper.USER_TABLE_NAME, null, values);

                if (index != -1) {
                    Toast.makeText(this, "插入成功", Toast.LENGTH_LONG).show();
                }

                break;
            }

            case R.id.button_delete: {

                String conditions = "username=?";
                String[] args = {"老张"};
                int numbers = mSqLiteDatabase.delete(DatabaseHelper.USER_TABLE_NAME, conditions, args);

                if (numbers == 0) {
                    Toast.makeText(this, "没有找到符合条件的", Toast.LENGTH_LONG).show();
                } else  {
                    Toast.makeText(this, "找到的个数是: " + numbers, Toast.LENGTH_LONG).show();
                }

                break;
            }

            case R.id.button_update: {

                ContentValues contentValues = new ContentValues();
                contentValues.put(DatabaseHelper.AGE, "20岁");

                String conditions = "age=?";
                String[] valueStr = {"18岁"};
                int affectNum = mSqLiteDatabase.update(DatabaseHelper.USER_TABLE_NAME, contentValues, conditions, valueStr);

                if (affectNum == 0) {
                    Toast.makeText(this, "没有找到符合条件的,没有修改", Toast.LENGTH_LONG).show();
                } else  {
                    Toast.makeText(this, "找到的个数是: " + affectNum, Toast.LENGTH_LONG).show();
                }

                break;
            }

            case R.id.button_query: {

                // TODO: 待优化,需要在子线程中进行IO操作
                // 游标:查找的数据集合
                Cursor cursor = mSqLiteDatabase.query(mDatabaseHelper.USER_TABLE_NAME, new String[] {DatabaseHelper.USER_NAME}, null, null, null, null, null, null);
                if (cursor.moveToFirst()) {

                    int count = cursor.getCount();
                    for (int i = 0; i < count; i++) {
                        String userName = cursor.getString(cursor.getColumnIndex(DatabaseHelper.USER_NAME));
                        Log.i(TAG,  i + " --> " + userName);
                    }
                }

                break;
            }
        }
    }
DatabaseHelper
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper {

    public static final String USER_TABLE_NAME = "user";
    public static final String USER_NAME = "username";
    public static final String AGE = "age";
    public static final String DATABASE_NAME = "database.db";
    public static final int VERSION = 1;

    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, 2);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table " + USER_TABLE_NAME + "(" + USER_NAME + " varchar(20) not null," + AGE + " varchar(10) not null" + ")");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}

相关文章

网友评论

      本文标题:Android:数据库的简单使用

      本文链接:https://www.haomeiwen.com/subject/wavreqtx.html