博客
关于我
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——深入浅出InnoDB底层原理
查看>>
MySQL“被动”性能优化汇总
查看>>
MySQL、HBase 和 Elasticsearch:特点与区别详解
查看>>
MySQL、Redis高频面试题汇总
查看>>
MYSQL、SQL Server、Oracle数据库排序空值null问题及其解决办法
查看>>
mysql一个字段为空时使用另一个字段排序
查看>>
MySQL一个表A中多个字段关联了表B的ID,如何关联查询?
查看>>
MYSQL一直显示正在启动
查看>>
MySQL一站到底!华为首发MySQL进阶宝典,基础+优化+源码+架构+实战五飞
查看>>
MySQL万字总结!超详细!
查看>>
Mysql下载以及安装(新手入门,超详细)
查看>>
MySQL不会性能调优?看看这份清华架构师编写的MySQL性能优化手册吧
查看>>
MySQL不同字符集及排序规则详解:业务场景下的最佳选
查看>>
Mysql不同官方版本对比
查看>>
MySQL与Informix数据库中的同义表创建:深入解析与比较
查看>>
mysql与mem_细说 MySQL 之 MEM_ROOT
查看>>
MySQL与Oracle的数据迁移注意事项,另附转换工具链接
查看>>
mysql丢失更新问题
查看>>
MySQL两千万数据优化&迁移
查看>>
MySql中 delimiter 详解
查看>>