博客
关于我
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 时间操作(当天,昨天,7天,30天,半年,全年,季度)
查看>>
MySQL 是如何加锁的?
查看>>
MySQL 是怎样运行的 - InnoDB数据页结构
查看>>
mysql 更新子表_mysql 在update中实现子查询的方式
查看>>
MySQL 有什么优点?
查看>>
mysql 权限整理记录
查看>>
mysql 权限登录问题:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
查看>>
MYSQL 查看最大连接数和修改最大连接数
查看>>
MySQL 查看有哪些表
查看>>
mysql 查看锁_阿里/美团/字节面试官必问的Mysql锁机制,你真的明白吗
查看>>
MySql 查询以逗号分隔的字符串的方法(正则)
查看>>
MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT 、分页查询的优化、合理使用连接、子查询的优化)(上)
查看>>
mysql 查询,正数降序排序,负数升序排序
查看>>
MySQL 树形结构 根据指定节点 获取其下属的所有子节点(包含路径上的枝干节点和叶子节点)...
查看>>
mysql 死锁 Deadlock found when trying to get lock; try restarting transaction
查看>>
mysql 死锁(先delete 后insert)日志分析
查看>>
MySQL 死锁了,怎么办?
查看>>
MySQL 深度分页性能急剧下降,该如何优化?
查看>>