【问题标题】:Saving arrayList to sqlite table using a model class使用模型类将arrayList保存到sqlite表
【发布时间】:2017-05-03 00:05:19
【问题描述】:

我正在创建一个数据库,我正在遵循给定的过程,但我需要在不同的不同列中插入大量数据,我必须在数组中添加值,然后将它们插入数据库? ?如果是,那怎么办??并且通过做同样的事情,我将如何匹配/检索它们与其他表的数据,因为我有更多的表。 任何形式的帮助/建议都将不胜感激。

将值添加到表中就像:

   public void addMidSemQuestions(MidSemQuestions midSemQuestions)
{
    openWritable();
    m_sqLiteDatabase.beginTransaction();
    try {
        ContentValues values = new ContentValues();
        values.put(KEY_SEM_ID, midSemQuestions.getId());
        values.put(KEY_SUBJECT, midSemQuestions.getSubject());
        values.put(KEY_QUESTION_ID, midSemQuestions.getQuestion_id());
        values.put(KEY_QUESTION, midSemQuestions.getQuestion());
        // Notice how we haven't specified the primary key. SQLite auto increments the primary key column.
        m_sqLiteDatabase.insertOrThrow(MID_SEM_QUESTION_TABLE, null, values);
        m_sqLiteDatabase.setTransactionSuccessful();
    }catch (Exception e)
    {
        Log.d(LOG,"Error while trying to add mid sem questions to database");
    }finally {
        m_sqLiteDatabase.endTransaction();
    }
} 

我的模型类是这样的:

public class MidSemQuestions
{
public int id;
public int sem_id;
public int sub_id;
public int marks_id;
public int question_id;
public String subject;
public String question;

public MidSemQuestions() {
}

public MidSemQuestions(int sem_id, int sub_id, int marks_id, int question_id, String subject,String question) {
    this.sem_id = sem_id;
    this.sub_id = sub_id;
    this.marks_id = marks_id;
    this.question_id = question_id;
    this.subject=subject;
    this.question = question;
}

public String getSubject() {
    return subject;
}

public void setSubject(String subject) {
    this.subject = subject;
}

public int getSub_id() {
    return sub_id;
}

public void setSub_id(int sub_id) {
    this.sub_id = sub_id;
}

public int getSem_id() {
    return sem_id;
}

public void setSem_id(int sem_id) {
    this.sem_id = sem_id;
}

public int getMarks_id() {
    return marks_id;
}

public void setMarks_id(int marks_id) {
    this.marks_id = marks_id;
}

public int getQuestion_id() {
    return question_id;
}

public void setQuestion_id(int question_id) {
    this.question_id = question_id;
}

public String getQuestion() {
    return question;
}

public void setQuestion(String question) {
    this.question = question;
}

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

}

我需要填写数据,因此我正在这样做:

    public void prepareDatabase()
{
    final CDataSource cDataSource= new CDataSource(this);
    if(cDataSource.getMidSemQuestionCount()==0)
    {
        //sem_id=1,sub_id=1,marks=2,
//que_id should be an array of 1 to 90,
//subject must be an array of strings,
//question also should be an array of strings

        cDataSource.addMidSemQuestions(new MidSemQuestions(1,1,2,1,"C Programming","What are the data types?"));

        //sem_id=1,sub_id=1,marks=5,que_id should be an array of 1 to 90,subject must be an array of strings,question also should be an array of strings

        cDataSource.addMidSemQuestions(new MidSemQuestions(1,1,5,11,"C Programming","Difference b/w call by value?"));

                //sem_id=1,sub_id=1,marks=10,que_id should be an array of 1 to 90,subject must be an array of strings,question also should be an array of strings

        cDataSource.addMidSemQuestions(new MidSemQuestions(1,1,2,1,"C Programming","What are the data types?"));
    }

}

【问题讨论】:

    标签: java android arrays sqlite


    【解决方案1】:

    假设你有 arraylist 这个字段,其中包含所有值,其中 您想使用模型类插入数据库。

    List<String> sem_id=new ArrayList<>();
    List<String> String sub_id=new ArrayList<>();
    List<String> String marks_id=new ArrayList<>();
    List<String> String question_id=new ArrayList<>();
    List<String> Strubg subject=new ArrayList<>();
    List<String> String question=new ArrayList<>();
    

    为了保存到数据库,假设 databasehelper.addData() 是你的数据库对象,用于将数据添加到数据库中

    for(int i=0;i<sem_id.size();i++{
        databasehelper.addData(new CDataSource(this).addMidSemQuestions(
        new MidSemQuestions(sub_id.get(i),
        marks_id.get(i),question_id.get(i),
        subject_id.get(i),question.get(i))));
    }
    

    为了从数据库中获取批量数据,您的数据库应该返回 列表格式,

    这里 midsem 列表将获取数据库中的所有值

    List<MidSemQuestions> midsem=new ArrayList<MidSemQuestions>();
    midsem=database.getAllFieldsFromDatabase();
    
     for(MidSemQuestions values:midsem){
    
        String sub_id=values.getSub_id();
        String sem_id=values.getSem_id();
        String marks_id=values.getMarks_id();
        String question_id=values.getQuestion_id();
        String subject_id=values.getSubject_id();
        String question=values.getQuestion();
    
     //if you want array list then, put it in arraylist
     //or anything you like 
    
     }
    

    【讨论】:

      猜你喜欢
      • 2011-12-09
      • 1970-01-01
      • 2021-09-04
      • 2013-05-02
      • 2014-04-25
      • 2010-09-14
      • 1970-01-01
      • 2011-10-26
      相关资源
      最近更新 更多