sqlitedatabase的使用

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class CityDBHelper extends SQLiteOpenHelper {
    private static final int DB_VERSION = 5;
    private static final String DB_NAME = "china_cities.db";
    public static final String TABLE_NAME = "city";

    public CityDBHelper(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        // create table Orders(Id integer primary key, CustomName text, OrderPrice integer, Country text);
        String sql = "create table if not exists " + TABLE_NAME + " (id integer primary key autoincrement, name varchar(50), pinyin varchar(300),areacode varchar(20))";
        sqLiteDatabase.execSQL(sql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) {
        String sql = "DROP TABLE IF EXISTS " + TABLE_NAME;
        sqLiteDatabase.execSQL(sql);
        onCreate(sqLiteDatabase);
    }

}

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import com.saicmotor.SmApplication;
import com.saicmotor.home.entity.City;
import com.saicmotor.home.db.CityDBHelper;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

import static CityDBHelper.TABLE_NAME;

/**
 * Created by johnyin2015 on 2017/11/9.
 */

public class CityDao {
    private static SQLiteDatabase db;
    private static final CityDBHelper mHelper = new CityDBHelper(Application.mContext);

    public static void insertData(List<City> allCities){
        db = mHelper.getWritableDatabase();
        db.beginTransaction();

        for (City city : allCities) {
            ContentValues contentValues = new ContentValues();
            contentValues.put("name", city.getName());
            contentValues.put("pinyin", city.getPinyin());
            contentValues.put("areacode",city.getAreacode());
            db.insertOrThrow(TABLE_NAME, null, contentValues);
        }

        db.setTransactionSuccessful();
    }

    public static List<City> searchCity(final String keyword){
        SQLiteDatabase db = mHelper.getReadableDatabase();
        Cursor cursor = db.rawQuery("select * from " + CityDBHelper.TABLE_NAME +" where name like \"%" + keyword
                + "%\" or pinyin like \"%" + keyword + "%\"", null);
        List<City> result = new ArrayList<>();
        City city;
        while (cursor.moveToNext()){
            String name = cursor.getString(cursor.getColumnIndex("name"));
            String pinyin = cursor.getString(cursor.getColumnIndex("pinyin"));
            String areacode = cursor.getString(cursor.getColumnIndex("areacode"));
            city = new City(name, pinyin,areacode);
            result.add(city);
        }
        cursor.close();
        Collections.sort(result, new CityComparator());
        return result;
    }

    /**
     * sort by a-z
     */
    private static class CityComparator implements Comparator<City> {
        @Override
        public int compare(City lhs, City rhs) {
            String a = lhs.getPinyin().substring(0, 1);
            String b = rhs.getPinyin().substring(0, 1);
            return a.compareTo(b);
        }
    }

    public static List<City> searchCityByName(final String keyword){
        SQLiteDatabase db = mHelper.getReadableDatabase();
        Cursor cursor = db.rawQuery("select * from " + CityDBHelper.TABLE_NAME +" where name like \"%" + keyword
                + "%\" or pinyin like \"%" + keyword + "%\"", null);
        List<City> result = new ArrayList<>();
        City city;
        while (cursor.moveToNext()){
            String name = cursor.getString(cursor.getColumnIndex("name"));
            String pinyin = cursor.getString(cursor.getColumnIndex("pinyin"));
            city = new City(name, pinyin);
            result.add(city);
        }
        cursor.close();
        Collections.sort(result, new CityComparator());
        return result;
    }
}

猜你喜欢

转载自blog.csdn.net/johnyin2015/article/details/78495563
今日推荐