0
点赞
收藏
分享

微信扫一扫

Android实验篇3_SaveInDatabase之SQLite的基本操作


效果图

SQLite的简单操作,没有用ListView,直接用的TextView显示,效果图

Android实验篇3_SaveInDatabase之SQLite的基本操作_存储数据库信息


Android实验篇3_SaveInDatabase之SQLite的基本操作_存储数据库信息_02

Android实验篇3_SaveInDatabase之SQLite的基本操作_SQL_03

Android实验篇3_SaveInDatabase之SQLite的基本操作_android_04

代码

  • activity_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical">

<!--    第一行、姓名-->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="姓名:"
            android:textSize="30dp"
            android:layout_margin="10dp"
            android:textColor="@color/purple_200"/>
        <EditText
            android:id="@+id/et_name"
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="50dp"/>

    </LinearLayout>
<!--    第二行、年龄-->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="年龄:"
            android:textSize="30dp"
            android:layout_margin="10dp"
            android:textColor="@color/purple_200"/>
        <EditText
            android:id="@+id/et_age"
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="50dp"/>

    </LinearLayout>
    <!--    第三行、按钮-->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="4">
        <Button
            android:id="@+id/btn_save"
            android:layout_width="180dp"
            android:layout_height="100dp"
            android:layout_margin="10dp"
            android:text="存入"
            android:textSize="20dp"
            />
        <Button
            android:id="@+id/btn_clear"
            android:layout_width="180dp"
            android:layout_height="100dp"
            android:layout_margin="10dp"
            android:text="清空数据库"
            android:textSize="20dp"/>



    </LinearLayout>
    <!--    第四行、数据显示-->
    <LinearLayout

        android:id="@+id/ll_show"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="4"
        android:orientation="vertical">



    </LinearLayout>

</LinearLayout>

  • MianActivity.java

package henu.soft.saveindatabasedemo;

import androidx.appcompat.app.AppCompatActivity;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private String name = "";
    private String age = "";
    private List<User> users = new ArrayList<>();
    private MyDBHelper myDBHelper;

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

        // 创建数据库
        myDBHelper = new MyDBHelper(MainActivity.this, "db", null, 2);
        // 查询数据
        findAll();
        findViewById(R.id.btn_save).setOnClickListener(this);
        findViewById(R.id.btn_clear).setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_save:
                EditText et_name = (EditText) findViewById(R.id.et_name);
                EditText et_age = (EditText) findViewById(R.id.et_age);
                name = et_name.getText().toString();
                age = et_age.getText().toString();

                if ("".equals(name) && "".equals(age)) {
                    Toast.makeText(this, "名字和年龄都为空,请重新填写!xs", Toast.LENGTH_SHORT).show();

                } else {
                    insert(name, age);

                }


                break;
            case R.id.btn_clear:
                clear();
                break;
        }

    }

    // 1. 增加一条数据

    public void insert(String name, String age) {
        SQLiteDatabase db = myDBHelper.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put("name", name);
        values.put("age", age);
        long result = db.insert("user_info", null, values);
        Toast.makeText(MainActivity.this, "插入一条数据成功!xs", Toast.LENGTH_SHORT).show();

        findAll();
        db.close();


    }

    // 2. 查询所有数据
    public void findAll() {
        LinearLayout linearLayout = (LinearLayout) findViewById(R.id.ll_show);
        linearLayout.removeAllViewsInLayout();
        SQLiteDatabase db = myDBHelper.getWritableDatabase();
        Cursor cursor = db.query("user_info", null, null, null, null, null, null);

        while (cursor.moveToNext()) {
            // 移动游标,获取所有记录
//            String _id = cursor.getString(cursor.getColumnIndex("_id"));
//            String name = cursor.getString(cursor.getColumnIndex("name"));
//            String age = cursor.getString(cursor.getColumnIndex("age"));

            String _id = cursor.getString(0);
            String name = cursor.getString(1);
            String age = cursor.getString(2);
//            String _id = cursor.getColumnName(0);
//            String name = cursor.getColumnName(1);
//            String age = cursor.getColumnName(2);
            // 放入list中
            users.add(new User(_id, name, age));
        }


        for (User user : users) {
            //1.集合中每有一条数据,就new一个TextView
            TextView tv = new TextView(MainActivity.this);
            //2.把人物的信息设置为文本的内容

            tv.setText(user.toString());
            tv.setTextSize(18);
            //3.把TextView设置成线性布局的子节点
            linearLayout.addView(tv);


        }
        db.close();
    }

    // 3. 删除表,清空数据
    public void clear() {
        SQLiteDatabase db = myDBHelper.getWritableDatabase();
        db.delete("user_info", null, null);
        //db.execSQL("drop table user_info");


        db.close();

        Toast.makeText(MainActivity.this, "表删除成功!", Toast.LENGTH_SHORT).show();

        LinearLayout linearLayout = (LinearLayout) findViewById(R.id.ll_show);
        linearLayout.removeAllViewsInLayout();



    }
}

  • User.java

package henu.soft.saveindatabasedemo;

public class User {
    private String id;
    private String name;
    private String age;

    public User(String id, String name, String age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public String getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public String getAge() {
        return age;
    }

    public void setId(String id) {
        this.id = id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(String age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "User{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", age='" + age + '\'' +
                '}';
    }
}

  • MyDBHelper.java

package henu.soft.saveindatabasedemo;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import androidx.annotation.Nullable;

public class MyDBHelper extends SQLiteOpenHelper {
    // 构造器
    public MyDBHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
        super(context, "db", null, 2);
    }


    // 启动创建数据库
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table user_info (_id integer primary key autoincrement, name varchar(20),age varchar(20)) ");

    }


    // 更新数据库调用
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
    // 删除数据库


}


举报

相关推荐

0 条评论