博客
关于我
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中怎样使用update更新某列的数据减去指定值
查看>>
Mysql中怎样设置指定ip远程访问连接
查看>>
mysql中数据表的基本操作很难嘛,由这个实验来带你从头走一遍
查看>>
Mysql中文乱码问题完美解决方案
查看>>
mysql中的 +号 和 CONCAT(str1,str2,...)
查看>>
Mysql中的 IFNULL 函数的详解
查看>>
mysql中的collate关键字是什么意思?
查看>>
MySql中的concat()相关函数
查看>>
mysql中的concat函数,concat_ws函数,concat_group函数之间的区别
查看>>
MySQL中的count函数
查看>>
MySQL中的DB、DBMS、SQL
查看>>
MySQL中的DECIMAL类型:MYSQL_TYPE_DECIMAL与MYSQL_TYPE_NEWDECIMAL详解
查看>>
MySQL中的GROUP_CONCAT()函数详解与实战应用
查看>>
MySQL中的IO问题分析与优化
查看>>
MySQL中的ON DUPLICATE KEY UPDATE详解与应用
查看>>
mysql中的rbs,SharePoint RBS:即使启用了RBS,内容数据库也在不断增长
查看>>
mysql中的undo log、redo log 、binlog大致概要
查看>>
Mysql中的using
查看>>
MySQL中的关键字深入比较:UNION vs UNION ALL
查看>>
mysql中的四大运算符种类汇总20多项,用了三天三夜来整理的,还不赶快收藏
查看>>