Android———实现Android程序中的数据存储

实验名称:

实现Android程序中的数据存储                                            

实验目的:

能熟练地使用数据持久化技术实现移动端数据的存储

实验内容及原理:

创建一个工程,设计界面和功能,要求能够实现数据的增删改查等操作。完成项目的调试,并将程序的代码和运行结果记录下来。

实验设备及实验步骤:

实验设备:

Windows+Android Studio

实验步骤:

1.创建程序

2.导入界面图片

导入背景图片。

3.放置界面控件

在activity_main.xml中放置3个TextView控件分别显示“姓名”、“电话”和“已保存的姓名电话信息”,放置2个EditView控件分别显示姓名的输入框和电话的输入框。放置4个Button控件分别用于显示添加按钮,查询按钮,修改按钮,和删除按钮。

4.编写界面交互代码MainActivity.java

代码如下:

package com.example.database;
//省略导包
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private Button btn_add, btn_query, btn_update, btn_delete;
    private EditText mEtName, mEtPhone;
    private TextView mTvShow;
    private MyHelper myHelper;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myHelper=new MyHelper(this);
        init();
    }
    private void init() {//绑定7个控件,设置4个监听
        mEtName = findViewById(R.id.et_name);
        mEtPhone = findViewById(R.id.et_phone);
        mTvShow = findViewById(R.id.tv_show);
        btn_add = findViewById(R.id.btn_add);
        btn_query = findViewById(R.id.btn_query);
        btn_update = findViewById(R.id.btn_update);
        btn_delete = findViewById(R.id.btn_delete);
        btn_add.setOnClickListener(this);
        btn_query.setOnClickListener(this);
        btn_update.setOnClickListener(this);
        btn_delete.setOnClickListener(this);
    }
    @Override
    public void onClick(View v) {
        String name, phone;
        SQLiteDatabase db;
        ContentValues values;
        switch (v.getId()) {
            case R.id.btn_add: //添加数据
                name = mEtName.getText().toString();
                phone = mEtPhone.getText().toString();
                db = myHelper.getWritableDatabase();//获取可读写的 SQLiteDatabse 对象
                values = new ContentValues();    //创建ContentValues 对象
                values.put("name", name);    //将数据添加到 ContentValues 对象
                values.put("phone", phone);
                db.insert("information", null, values);
                Toast.makeText(this, "信息已添加", Toast.LENGTH_SHORT).show();
                db.close();
                break;
            case R.id.btn_query: //查询数据
                db = myHelper.getReadableDatabase();
                Cursor cursor = db.query("information", null, null, null, null,
                        null, null);
                if (cursor.getCount() == 0) {
                    mTvShow.setText("");
                    Toast.makeText(this, "没有数据", Toast.LENGTH_SHORT).show();
                } else {
                    cursor.moveToFirst();
                    mTvShow.setText("Name : " + cursor.getString(1) +
                            " : Tel : " + cursor.getString(2));
                }
                while (cursor.moveToNext()) {
                    mTvShow.append("\n" + "Name : " + cursor.getString(1) +
                            " : Tel : " + cursor.getString(2));
                }
                cursor.close();
                db.close();
                break;
            case R.id.btn_update: //修改数据
                db = myHelper.getWritableDatabase();
                values = new ContentValues();    // 要修改的数据
                values.put("phone", phone = mEtPhone.getText().toString());
                db.update("information", values, "name=?",
                        new String[]{mEtName.getText().toString()}); // 更新并得到行数
                Toast.makeText(this, "信息已修改", Toast.LENGTH_SHORT).show();
                db.close();
                break;
            case R.id.btn_delete: //删除数据
                db = myHelper.getReadableDatabase();
                db.delete("information", null, null);
                Toast.makeText(this, "信息已删除", Toast.LENGTH_SHORT).show();
                mTvShow.setText("");
                db.close();
                break;
        }
    }
}

5.编写MyHelper.java

package com.example.database;
//省略导包
public class MyHelper extends SQLiteOpenHelper {
    public MyHelper(@Nullable Context context) {
        super(context,"itcast.db",null,1 );
    }
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE information (_id INTEGER PRIMARY KEY AUTOINCREMENT," +
                "name VERCHAR(20)," +
                "phone VARCHAR(20));");
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    }
}

实验结果与分析:

添加、查询、修改截图

删除截图

 

数据库截图

问题及思考:

简述数据库事务的四个基本要素。

ACID,指数据库事务正确执行的四个基本要素的缩写。包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。一个支持事务(Transaction)的数据库系统,必需要具有这四种特性,否则在事务过程(Transaction processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求。

猜你喜欢

转载自blog.csdn.net/Liwo4418/article/details/131214622