如何从DB Browser获取数据以获取SQLite并显示来自Listview android的数据

时间:2016-09-30 05:14:08

标签: java android database sqlite android-database

我在DB Browser拳击类和第二人中创建了两个表。
类别有两个字段,第一个id和第二个名称,人们有三个字段id,namd和category id。
听到我在类别字段中放了五个项目,很多人使用category_id命名如何显示数据列表视图或者Recyclerview


我在数据库浏览器中有静态添加数据


请帮助我!!

DataBaseHelper.java

public class DataBaseHelper extends SQLiteOpenHelper {

private static String DB_PATH = "/data/data/com.example.mobisharnam.database/databases/";

private static String DB_NAME = "alertme";

private SQLiteDatabase myDataBase;

private final Context myContext;

public DataBaseHelper(Context context) {
    super(context, DB_NAME, null, 1);

    this.myContext = context;
}

public void createDataBase() throws IOException {

    boolean dbExist = checkDataBase();

    if (dbExist) {
    } else {

        this.getReadableDatabase();

        try {
            copyDataBase();
        } catch (IOException e) {

            throw new Error("Error copying database");

        }
    }
}

private boolean checkDataBase() {

    SQLiteDatabase checkDB = null;

    try {
        String myPath = DB_PATH + DB_NAME;
        checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);

    } catch (SQLiteException e) {

    }

    if (checkDB != null) {

        checkDB.close();

    }

    return checkDB != null ? true : false;
}

private void copyDataBase() throws IOException {

    InputStream myInput = myContext.getAssets().open(DB_NAME);

    String outFileName = DB_PATH + DB_NAME;

    OutputStream myOutput = new FileOutputStream(outFileName);

    byte[] buffer = new byte[1024];
    int length;
    while ((length = myInput.read(buffer)) > 0) {
        myOutput.write(buffer, 0, length);
    }

    myOutput.flush();
    myOutput.close();
    myInput.close();

}

public void openDataBase() throws SQLException {
    String myPath = DB_PATH + DB_NAME;
    myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);

}


@Override
public synchronized void close() {

    if (myDataBase != null)
        myDataBase.close();

    super.close();

}

@Override
public void onCreate(SQLiteDatabase db) {

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

}

Activity.class

公共类MainActivity扩展了AppCompatActivity {

private static DataBaseHelper mDbHelper;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mDbHelper = new DataBaseHelper(this);

    try {

        mDbHelper.createDataBase();

    } catch (IOException ioe) {

        throw new Error("Unable to create database");
    }

    try {
        mDbHelper.openDataBase();

    } catch (SQLException sqle) {

        throw sqle;
    }
}

}

人物模型

public class People {

private String PeopleName;
private int PeopleId;


public People(String peopleName,int peopleId) {
    this.PeopleId = peopleId;
    this.PeopleName = peopleName;
}


public String getPeopleName() {
    return PeopleName;
}

public void setPeopleName(String peopleName) {
    PeopleName = peopleName;
}

public int getPeopleId() {
    return PeopleId;
}

public void setPeopleId(int peopleId) {
    PeopleId = peopleId;
}

}

类别模型

public class Category {
int CategoryId;
String  CategoryName;

public Category(int categoryId,String categoryName){
    this.CategoryId = categoryId;
    this.CategoryName = categoryName;
}

public int getCategoryId() {
    return CategoryId;
}

public void setCategoryId(int categoryId) {
    CategoryId = categoryId;
}

public String getCategoryName() {
    return CategoryName;
}

public void setCategoryName(String categoryName) {
    CategoryName = categoryName;
}

}

0 个答案:

没有答案