使用SQLite数据库展示用户信息

只有添加、查看、删除功能,无修改功能

目录结构:

 

 

代码:

1.  insertuser_Activity.java

import android.app.Activity;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;

import androidx.annotation.Nullable;

import javax.xml.parsers.SAXParser;

public class Insertuser_Activity extends Activity {
    private EditText name_edit, paswd_edit, age_edit;
    private Spinner spinner;
    private Button save_btn;
    private String select_sex = "男";

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.user_insert);
        init();
    }

    private void init() {
        name_edit = (EditText)findViewById(R.id.insert_name);
        paswd_edit = (EditText)findViewById(R.id.insert_paswd);
        spinner = (Spinner) findViewById(R.id.insert_sex);

        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                select_sex = Insertuser_Activity.this.getResources().getStringArray(R.array.sex)[i];
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });
        age_edit = (EditText) findViewById(R.id.insert_age);
        save_btn = (Button) findViewById(R.id.save_username);
        save_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String name_str = name_edit.getText().toString();
                String paswd_str = paswd_edit.getText().toString();
                int age = Integer.parseInt(age_edit.getText().toString());

                User_Database us_db = new User_Database(Insertuser_Activity.this);
                SQLiteDatabase sqLiteDatabase = us_db.getWritableDatabase();
                us_db.adddata(sqLiteDatabase, name_str,paswd_str,select_sex,age);
                Intent intent = new Intent(Insertuser_Activity.this, Sea_deluser_Activity.class);
                startActivity(intent);
            }
        });
    }
}

2.  MainActivity.java

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    public User_Database user;
    public SQLiteDatabase sqLiteDatabase;
    private Button search_del_btn, insert_btn, update_btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        User_Database user = new User_Database(MainActivity.this);
        sqLiteDatabase = user.getReadableDatabase();
        init();
    }

    public void init(){
        search_del_btn = (Button) findViewById(R.id.search_delete);
        insert_btn = (Button) findViewById(R.id.add);
        update_btn = (Button) findViewById(R.id.updata);
        search_del_btn.setOnClickListener(this);
        insert_btn.setOnClickListener(this);
        update_btn.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.search_delete:
                Intent intent1 = new Intent(MainActivity.this, Sea_deluser_Activity.class);
                startActivity(intent1);
                break;
            case R.id.add:
                Intent intent2 = new Intent(MainActivity.this,Insertuser_Activity.class);
                startActivity(intent2);
                break;
            case R.id.updata:
                Intent intent3 = new Intent(MainActivity.this,Updareuser_Activity.class);
                startActivity(intent3);
                break;
            default:
                break;
        }
    }
}

3.  Sea_deluser_Activity.java

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import java.util.List;

public class Sea_deluser_Activity extends Activity {
    public ListView user_list;
    private List<UserInfo> list;
    private SQLiteDatabase sqLiteDatabase;
    private String[] user_mes;

    @Override
    protected void onCreate(Bundle saveInstanceState) {
        super.onCreate(saveInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.user_search_delete);
        user_list = findViewById(R.id.mes);
        User_Database users = new User_Database(Sea_deluser_Activity.this);
        sqLiteDatabase = users.getReadableDatabase();
        list = users.querydata(sqLiteDatabase);
        user_mes = new String[list.size()];
        for (int i=0; i<list.size(); i++){
            user_mes[i] = list.get(i).getUsername() + " " + list.get(i).getPaswd()+ " " + list.get(i).getAge()+ " " + list.get(i).getSex();
        }
        final ArrayAdapter<String> adapter = new ArrayAdapter<String>(Sea_deluser_Activity.this, android.R.layout.simple_list_item_1, user_mes);
        user_list.setAdapter(adapter);
        user_list.setOnItemClickListener(new AdapterView.OnItemClickListener(){
            public void onItemClick(AdapterView<?> adapterView, View view, int I, long l){
                final int id = list.get(I).getId();
                new AlertDialog.Builder(Sea_deluser_Activity.this).setTitle("系统提示").setMessage("确认删除该条数据吗?").setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        User_Database user_database = new User_Database(Sea_deluser_Activity.this);
                        SQLiteDatabase sqLiteDatabase = user_database.getWritableDatabase();
                        user_database.delete(sqLiteDatabase, id);
                        refresh();
                        Toast.makeText(Sea_deluser_Activity.this,"删除成功", Toast.LENGTH_SHORT).show();
                    }
                }).setNegativeButton("取消",new DialogInterface.OnClickListener(){
                    public void onClick(DialogInterface dialog , int which){}
                }).show();
            }
        });
    }

    private void refresh(){
        finish();
        Intent intent = new Intent(Sea_deluser_Activity.this, Sea_deluser_Activity.class);
        startActivity(intent);
    }
}

4.  Updareuser_Activity.java(建立即可,可不写代码,只有添加、查看、删除功能,无修改)

5. User_Database.java

import android.annotation.SuppressLint;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.DatabaseErrorHandler;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

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

public class User_Database extends SQLiteOpenHelper {

    public User_Database(Context context){
        super(context,"user_db",null,1);
    }
    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        String sql = "create table user(id integer primary key autoincrement, username varchar(20), paswd varchar(20), sex varchar(20), age integer)";
        sqLiteDatabase.execSQL(sql);
    }

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

    }

    //添加数据
    public void adddata(SQLiteDatabase sqLiteDatabase, String username, String paswd, String sex,int age){
        ContentValues values = new ContentValues();
        values.put("username",username);
        values.put("paswd",paswd);
        values.put("sex",sex);
        values.put("age",age);
        sqLiteDatabase.insert("user",null,values);
        sqLiteDatabase.close();
    }
    //删除数据
    public void delete(SQLiteDatabase sqLiteDatabase, int id){
        sqLiteDatabase.delete("user","id=?",new String[]{id+""});
        sqLiteDatabase.close();
    }
    //更新数据
    public void update(SQLiteDatabase sqLiteDatabase, int id, String username, String paswd, String sex, int age){
        ContentValues values = new ContentValues();
        values.put("username",username);
        values.put("paswd",paswd);
        values.put("sex",sex);
        values.put("age",age);
        sqLiteDatabase.update("user",values, "id=?",new String[]{id+""});
        sqLiteDatabase.close();
    }
    //查询数据
    public List<UserInfo> querydata(SQLiteDatabase sqLiteDatabase){
        Cursor cursor = sqLiteDatabase.query("user",null,null,null,null,null,"id ASC");
        List<UserInfo> list = new ArrayList<UserInfo>();
        while (cursor.moveToNext()){
            @SuppressLint("Range") int id = cursor.getInt(cursor.getColumnIndex("id"));
            String username = cursor.getString(1);
            String paswd = cursor.getString(2);
            String sex = cursor.getString(3);
            @SuppressLint("Range") int age = cursor.getInt(cursor.getColumnIndex("age"));
            list.add(new UserInfo(id,username,paswd,sex,age));
        }
        cursor.close();
        sqLiteDatabase.close();
        return list;
    }
}

6.  UserInfo.java

public class UserInfo {
    private int id;
    private String username;
    private String paswd;
    private String sex;
    private int age;

    public UserInfo(int id, String username, String paswd, String sex, int age) {
        this.id = id;
        this.username = username;
        this.paswd = paswd;
        this.sex = sex;
        this.age = age;
    }

    public int getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPaswd() {
        return paswd;
    }

    public void setPaswd(String paswd) {
        this.paswd = paswd;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

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

    @Override
    public String toString() {
        return "UserInfo{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", paswd='" + paswd + '\'' +
                ", sex='" + sex + '\'' +
                ", age=" + age +
                '}';
    }
}

布局文件代码:

1.  activity_main.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">

    <Button
        android:id="@+id/search_delete"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:textSize="17sp"
        android:textColor="#FFFFFF"
        android:background="#4169E1"
        android:text="查询/删除用户信息"/>
    <Button
        android:id="@+id/updata"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:textSize="17sp"
        android:textColor="#FFFFFF"
        android:background="#4169E1"
        android:text="无用按钮"/>
    <Button
        android:id="@+id/add"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:textSize="17sp"
        android:textColor="#FFFFFF"
        android:background="#4169E1"
        android:text="添加用户信息"/>


</LinearLayout>

2. detail.xml(无用)

3.  user_insert.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <EditText
        android:id="@+id/insert_name"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:gravity="center"
        android:background="@drawable/edit_shape"
        android:layout_marginTop="10dp"
        android:hint="请输入用户名"/>
    <EditText
        android:id="@+id/insert_paswd"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:gravity="center"
        android:background="@drawable/edit_shape"
        android:layout_marginTop="10dp"
        android:hint="请输入密码"/>

    <Spinner
        android:id="@+id/insert_sex"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:entries="@array/sex"
        android:gravity="center" />

    <EditText
        android:id="@+id/insert_age"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:gravity="center"
        android:background="@drawable/edit_shape"
        android:hint="请输入年龄"/>
    <Button
        android:id="@+id/save_username"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_marginTop="20dp"
        android:textSize="17sp"
        android:textColor="#FFFFFF"
        android:background="#4169E1"
        android:text="添加该用户信息"/>



</LinearLayout>

 @drawable/edit_shape会报红,根据系统修复一下就行,会生成这个文件,可以不用写入代码直接运行

4.  user_search_delete.xml

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="#3F51B5"
        android:orientation="horizontal">
        <ImageView
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_marginLeft="10dp"
            android:src="@mipmap/ic_launcher"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:text="查询用户"
            android:textSize="18sp"
            android:gravity="center_vertical"
            android:textColor="#FFFFFF"/>

    </LinearLayout>
    <ListView
        android:id="@+id/mes"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:dividerHeight="2dp"/>

</LinearLayout>

5.  加入values文件夹中:arrays.xml

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
    <string-array name="sex">
        <item>男</item>
        <item>女</item>
    </string-array>

</resources>

看到这里,应该复制粘贴完了吧,另外,还需要在

 这个文件中添加活动。

 <activity android:name=".Sea_deluser_Activity">

 </activity>

 <activity android:name=".Insertuser_Activity">

 </activity>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Android中的SQLite数据库是一种轻量级的数据库,它可以在Android应用程序中存储和检索数据。SQLite数据库使用SQL语言来管理数据,可以在Android应用程序中创建、读取、更新和删除数据。使用SQLite数据库可以使应用程序更加高效和可靠,因为它可以在本地存储数据,而不需要访问网络。在Android中使用SQLite数据库需要使用SQLiteOpenHelper类来创建和管理数据库SQLiteOpenHelper类提供了一些方法来创建和升级数据库,以及插入、查询、更新和删除数据。在使用SQLite数据库时,需要注意数据类型、表结构、SQL语句等方面的问题,以确保数据的正确性和完整性。 ### 回答2: Android平台经常使用SQLite数据库来存储和管理本地数据。在本文中,我们将讨论如何在Android中使用SQLite数据库。 首先,在Android中使用SQLite数据库,我们需要创建一个SQLiteOpenHelper类。这个类用于创建和升级数据库。它包含了两个重要的方法:onCreate()和onUpgrade()。onCreate()方法将在首次创建数据库时被调用。onUpgrade()方法将在升级数据库时被调用。我们可以在这个类中定义表名,列名,数据库版本号和其他数据库相关信息。 接下来,在我们使用数据库前,需要实例化一个SQLiteOpenHelper类对象。这个对象用于打开或创建数据库。我们可以使用getReadableDatabase()和getWritableDatabase()方法来获取一个可读/写的数据库对象。 在获取数据库对象后,我们可以执行SQL命令来操作数据库。我们可以使用execSQL()方法来执行SQL命令。我们可以使用insert()、update()和delete()方法来执行增、删、改操作。我们可以使用rawQuery()方法来执行查询操作。 SQLiteOpenHelper类和SQLiteDatabase类并不是线程安全的。因此我们需要确保在使用时进行同步操作。我们可以使用synchronized关键字来达到同步效果。 在Android中,许多第三方的开源框架,如OrmLite、GreenDao和Realm等,提供了ORM(对象关系映射)的功能,使得数据库的操作更加简单和便捷。 总的来说,在Android中使用SQLite数据库可以轻松地存储和管理本地数据。SQLiteOpenHelper和SQLiteDatabase提供了丰富的API来操作数据库。ORM框架为我们提供了更加简便的数据库操作方式。因此,掌握Android中SQLite数据库使用非常重要。 ### 回答3: Android SQLite数据库是Android开发中最常用的数据库之一,它是一个基于文件的嵌入式关系数据库管理系统。SQLite在设计时考虑到了资源占用和运行效率,所以非常适合在移动设备上使用。下面将详细介绍如何使用Android SQLite数据库。 1. 创建数据库 首先需要创建一个SQLite数据库,通过SQLiteOpenHelper类来创建,传入的参数主要是数据库版本号和数据库名称。在SQLiteOpenHelper的子类中重写onCreate方法来创建表格和一些初始化操作。 2. 执行SQL语句 在SQLiteOpenHelper的子类中重写onUpgrade方法来执行升级操作,可以通过执行ALTER TABLE语句来修改表格结构,并通过DROP TABLE语句删除表格。除此之外,在应用中也可以通过SQLiteDataBase对象的execSQL方法来执行SQL语句,如插入、删除或修改数据等。 3. 增删改查操作 增加(insert):通过SQLiteDataBase对象的insert方法来实现,在方法中传入表名和map对象,map对象中存储数据的键值对。 删除(delete):同样通过SQLiteDataBase对象的delete方法来实现,传入表名和删除条件。 修改(update):也是通过SQLiteDataBase对象的update方法来实现,同时传入修改的数据及条件。 查询(query):同样通过SQLiteDataBase对象的query方法来实现,传入要查询的表名、查询的列、查询条件等参数即可。 4. 事务操作 SQlite数据库支持事务操作,可以在一组操作中,只要有一个操作出现问题,就可以将之前的操作全部回滚,以保证数据的完整性和一致性。 以上就是android-sqlite数据库使用方法,当然还有很多细节需要注意,例如:表格的设计、SQL语句的优化等。熟练掌握SQLite使用,可以帮助开发者更好地管理应用数据,提高应用性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值