
相信大家都用过Excel吧,我们在管理少量比较复杂的数据时就会使用它。比方统计一个班的学生信息,我们一般会在第一行输入学生姓名、班级、学号等字段来构成一个学生的完整信息。例如:
学生信息编写布局代码(代码最后给出),实现效果如下:
主页面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 }}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(); } }); }}dbHelper = new MyDatabaseHelper(this, "test.db", 1)创立MyDatabaseHelper对象时需在其中传入Context(this)、数据库文件名字(test.db)、数据库版本(1)。这里我们已经传入一个写好的数据库文件,当系统发现已经有数据库了,就不会调用MyDatabaseHelper中的onCreate()函数,所以这两句代码就不会执行。String sqlCommand1 = "create table student(_id integer primary key, name varchar(255), age integer)";db.execSQL(sqlCommand1);SQLiteDatabase db = dbHelper.getWritableDatabase()getWritableDatabase()方法会创立或者打开一个可读数据库。Cursor cursor = db.query(false, "student", null, null, null ,null, null, null, null)Cursor类是数据每行的集合,db.query()方法中所含参数非常多(大家可以自行搜索一下),这里我们查询数据库中"student"表,并把查询到的数据返回给cursor便于后续操作。cursor.moveToFirst()将记录指针移动到第一行,如有数据则执行下面的方法。cursor.moveToNext()将记录指针移动到下一行,判断还有无数据。增加数据前:
增加数据前点击增加按钮: