博客
关于我
Android实验篇3_SaveInDatabase之SQLite的基本操作
阅读量:360 次
发布时间:2019-03-04

本文共 5827 字,大约阅读时间需要 19 分钟。

效果图

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

代码

  • activity_layout.xml
  • 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
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) {       }    // 删除数据库}

转载地址:http://nwmr.baihongyu.com/

你可能感兴趣的文章
mysql 输入密码秒退
查看>>
mysql 递归查找父节点_MySQL递归查询树状表的子节点、父节点具体实现
查看>>
mysql 通过查看mysql 配置参数、状态来优化你的mysql
查看>>
mysql 里对root及普通用户赋权及更改密码的一些命令
查看>>
Mysql 重置自增列的开始序号
查看>>
mysql 锁机制 mvcc_Mysql性能优化-事务、锁和MVCC
查看>>
MySQL 错误
查看>>
mysql 随机数 rand使用
查看>>
MySQL 面试题汇总
查看>>
MySQL 面试,必须掌握的 8 大核心点
查看>>
MySQL 高可用性之keepalived+mysql双主
查看>>
MySQL 高性能优化规范建议
查看>>
mysql 默认事务隔离级别下锁分析
查看>>
Mysql--逻辑架构
查看>>
MySql-2019-4-21-复习
查看>>
mysql-5.6.17-win32免安装版配置
查看>>
mysql-5.7.18安装
查看>>
MySQL-Buffer的应用
查看>>
mysql-cluster 安装篇(1)---简介
查看>>
mysql-connector-java.jar乱码,最新版mysql-connector-java-8.0.15.jar,如何愉快的进行JDBC操作...
查看>>