Android开发Android技术知识Android开发经验谈

Android开发之读取数据库(SQLiteOpenHelper

2018-12-19  本文已影响2人  没想好昵称呵

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地址

上一篇 下一篇

猜你喜欢

热点阅读