Android开发之读取数据库(SQLiteOpenHelper)
来源:没想好昵称呵     阅读:483
织梦二开
发布于 2018-12-20 23:05
查看主页

SQLite数据库

读取数据库文件

  1. 从一个已经写好的数据库(里面包含少量学生信息)读取学生的基本信息。
  2. 点击获取按钮,将读取出来的信息在ListView控件中展现。
public class MyDatabaseHelper extends SQLiteOpenHelper {    public MyDatabaseHelper (Context context, String name, int version) {        super(context, name, version);    }    @Override    public void onCreate(SQLiteDatabase db) {        //创立sql语句,新建表        String sqlCommand1 = "create table student(_id integer primary key, name varchar(255), age integer)";        //执行sql语句        db.execSQL(sqlCommand1);    }    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {        // TODO Auto-generated method stub    }}
补充
  1. MyDatabaseHelper是一个继承自SQLiteOpenHelper的Java类,它需要重写父类的onCreate()和onUpgrade()方法。该类的构造函数,也就是MyDatabaseHelper()用来初始化数据库连接。当数据表第一次被创立时,onCreate()方法将被触发,在该方法中实现数据表的创立。当数据库需要更新时,onUpgrade()方法将被触发,该方法实现数据库升级。
public class MainActivity extends AppCompatActivity {    ArrayAdapter<String> adapter;    private MyDatabaseHelper dbHelper;    Button button;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        button = (Button)findViewById(R.id.button1);        //创立MyDatabaseHelper对象        dbHelper = new MyDatabaseHelper(this, "test.db", 1);        adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1);        ListView listView = (ListView)findViewById(R.id.list1);        listView.setAdapter(adapter);        button.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                //通过SQLiteDatabase返回的对象对数据库进行操作                //getWritableDatabase()方法创立或者打开一个可读数据库                SQLiteDatabase db = dbHelper.getWritableDatabase();                //查询student表中所有数据                //查询到的数据都将从Cursor对象取出                Cursor cursor = db.query(false, "student", null, null, null ,null, null, null, null);                if (cursor.moveToFirst()){//遍历对象                    do {                        //向适配器中增加数据                        adapter.add(cursor.getString(cursor.getColumnIndex("name")));                        adapter.add(cursor.getString(cursor.getColumnIndex("no")));                    }while (cursor.moveToNext());                }                cursor.close();            }        });    }}
补充

实际效果

GitHub地址

免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 系统环境 服务器应用
相关推荐
Java中的ThreadPoolExecutor线程池
一份经典多线程并发面试题!
为什么技术人肯定要懂点“可信计算”?
案例总结【原生js置顶插件】
网络工程师跨交换机的Vlan配置与管理知识
首页
搜索
订单
购物车
我的