SQLite

匿名 (未验证) 提交于 2019-12-03 00:30:01

1、为什么要用SQLite?
SharedPreferences是以xml形式存储数据的,只适合储存基本数据类型的数据,文件存储的内容在读取解析时相对复杂;当数据量大,结构复杂时,如果使用SharedPreferences和文件储存对数据的操作将变得非常复杂,容易出错,效率低下,Android提供了SQLite数据存储,帮助我们解决这些问题。
2、什么是SQLite?

3、如何创建数据库和数据表?
新建继承类SQLiteOpenHelper;
实现其中的构造方法,重写onCreate方法和onUpgrade方法;
实例化SQLiteOpenHelper的子类对象;
调用getReadableDatabase方法或者getWritaDatabase方法。
这里以一个学生列表举例:

package com.example.sqliteapplication;  import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper;  public class MySqiliteHelper extends SQLiteOpenHelper{      private String sql = "create table student(" +             "id integer primary key autoincrement not null," +             "name text," +             "age integer" +             ")";      public MySqiliteHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {         super(context, name, factory, version);     }      @Override     public void onCreate(SQLiteDatabase db) {         db.execSQL(sql);//创建数据库及数据表      }      @Override     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {         //不需要更新数据时,什么都不用写     } } 

4、如何添加数据?
创建StudentActivity,在里面写一个方法addStudent(),内容如下:

private void addStudent() {         String name = name_et.getText().toString();         int age = Integer.parseInt(age_et.getText().toString());          ContentValues values = new ContentValues();         values.put("name",name);         values.put("age",age);          MySqiliteHelper mySqiliteHelper = new MySqiliteHelper(this,"student_db",null,1);         SQLiteDatabase sqLiteDatabase = mySqiliteHelper.getWritableDatabase();         sqLiteDatabase.insert("student",null,values);     }

5.如何删除数据?

private void delectstudent() {          String name=  nameET.getText().toString();         int age= Integer.parseInt(ageET.getText().toString());          MySQLiteHelper mysqliteHelper=new MySQLiteHelper(this,"student_db",null,1);         SQLiteDatabase db=mysqliteHelper.getReadableDatabase();         db.delete("student","name=?",new String[]{name});        }

6.如何修改数据?

 private void updatestudent() {         String name=  nameET.getText().toString();         int age= Integer.parseInt(ageET.getText().toString());          MySQLiteHelper mysqliteHelper=new MySQLiteHelper(this,"student_db",null,1);         SQLiteDatabase db=mysqliteHelper.getReadableDatabase();         ContentValues values=new ContentValues();         values.put("name","zyx");         db.update("student",values,"name=? and age=?",new String[]{name,age+""});     }

7.如何查询数据?

private void selectstudent() {         MySQLiteHelper mysqliteHelper=new MySQLiteHelper(this,"student_db",null,1);         SQLiteDatabase db=mysqliteHelper.getReadableDatabase();          Cursor cursor=db.query("student",null,null,null,null,null,null);         cursor.moveToFirst();         mysqlList.clear();        do{            int id=cursor.getInt(cursor.getColumnIndex("id"));            String name=cursor.getString(cursor.getColumnIndex("name"));            int age=cursor.getInt(cursor.getColumnIndex("age"));             MySQL s=new MySQL(name,id,age);            mysqlList.add(s);            Log.e("selectstudent",name+"-"+age+"-");         }while (cursor.moveToNext());         sqladapter=new SQLAdapter(SQLActivity.this,mysqlList);         listView.setAdapter(sqladapter);     }
文章来源: SQLite
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!