Как заполнить базу данных sqlite листом объектов?
Я работаю с файлом преобразую содержимое лист объектов, теперь мне надо добавить их в базу данных. Всего 6 таблиц в базе данных.
public class ReadFileActivity extends AppCompatActivity implements View.OnClickListener{
Button read;
private static ArrayList<Errors> errors = new ArrayList<>();
// Константы для элементов
private static final String BackBrakePressureEmergency = "BackBrakePressureEmergency";
private static final String CloggedSteeringFilters = "CloggedSteeringFilters";
private static final String CloggedSteeringFiltersGS = "CloggedSteeringFiltersGS";
private static final String EmergencyOil = "EmergencyOil";
private static final String EmergencyOilLevelGS = "EmergencyOilLevelGS";
private static final String FontBrakePressureEmergency = "FontBrakePressureEmergency";
SQLiteDatabase db = getBaseContext().openOrCreateDatabase("MyDiplom.db", MODE_PRIVATE, null);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_read_file);
SQLiteDatabase db = getBaseContext().openOrCreateDatabase("MyDiplom.db", MODE_PRIVATE, null);
read = (Button) findViewById(R.id.buttonReadAndSwap);
read.setOnClickListener(this);
}
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
public void onClick(View v) {
switch (R.id.buttonReadAndSwap){
case R.id.buttonReadAndSwap:
try {
converterBackBrakePressureEmergency();
converterCloggedSteeringFilters();
converterCloggedSteeringFiltersGS();
converterEmergencyOil();
converterEmergencyOilLevelGS();
converterFontBrakePressureEmergencies();
} catch (IOException e) {
e.printStackTrace();
}
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
break;
}
}
private JsonArray readJson(String key) throws IOException {
JsonArray array = null;
try (BufferedReader br = new BufferedReader(new InputStreamReader(getApplication().getAssets().open("data.json")))) {
JsonObject jsonObject = new JsonParser().parse(br).getAsJsonObject();
JsonObject data = jsonObject.getAsJsonObject("data");
array = data.getAsJsonArray(key);
}
return array;
}
@RequiresApi(api = Build.VERSION_CODES.N)
private List<BackBrakePressureEmergency> converterBackBrakePressureEmergency() throws IOException {
JsonArray array = readJson("BackBrakePressureEmergency");
Gson gson = new GsonBuilder().create();
List<BackBrakePressureEmergency> list = IntStream.range(0,array.size()).mapToObj(i -> gson.fromJson(array.get(i).toString(),BackBrakePressureEmergency.class)).collect(Collectors.toList());
db.execSQL("CREATE TABLE IF NOT EXISTS backbrakepressureemergency (ID INTEGER , startDate TEXT, endDate TEXT, duration INTEGER) ");
for(int i=0;i<list.size();i++){
db.execSQL("INSERT INTO backbrakepressureemergency VALUES ( " + i+","+ + list.get(i).getDuration()+"," +
list.get(i).getStartDate() +","+
list.get(i).getEndDate() +","+
list.get(i).getDuration());
}
return list;
}
@RequiresApi(api = Build.VERSION_CODES.N)
private List<CloggedSteeringFilters> converterCloggedSteeringFilters() throws IOException
{
JsonArray array=readJson("CloggedSteeringFilters");
Gson gson = new GsonBuilder().create();
List<CloggedSteeringFilters> list = IntStream.range(0,array.size()).mapToObj(i -> gson.fromJson(array.get(i).toString(),CloggedSteeringFilters.class)).collect(Collectors.toList());
db.execSQL("CREATE TABLE IF NOT EXISTS cloggedsteeringfilters (ID INTEGER , startDate TEXT, endDate TEXT, duration INTEGER) ");
for(int i=0;i<list.size();i++){
db.execSQL("INSERT INTO cloggedsteeringfilters VALUES ( " + i+","+
list.get(i).getStartDate() +","+
list.get(i).getEndDate() +","+
list.get(i).getDuration());
}
return list;
}
@RequiresApi(api = Build.VERSION_CODES.N)
private List<CloggedSteeringFiltersGS> converterCloggedSteeringFiltersGS() throws IOException
{
JsonArray array=readJson("CloggedSteeringFiltersGS");
Gson gson = new GsonBuilder().create();
List<CloggedSteeringFiltersGS> list = IntStream.range(0,array.size()).mapToObj(i -> gson.fromJson(array.get(i).toString(),CloggedSteeringFiltersGS.class)).collect(Collectors.toList());
db.execSQL("CREATE TABLE IF NOT EXISTS cloggedsteeringfiltersgs (ID INTEGER , startDate TEXT, endDate TEXT, duration INTEGER) ");
for(int i=0;i<list.size();i++){
db.execSQL("INSERT INTO cloggedsteeringfiltersgs VALUES ( " + i+","+
list.get(i).getStartDate() +","+
list.get(i).getEndDate() +","+
list.get(i).getDuration());
}
return list;
}
@RequiresApi(api = Build.VERSION_CODES.N)
private List<EmergencyOil> converterEmergencyOil() throws IOException
{
JsonArray array=readJson("EmergencyOil");
Gson gson = new GsonBuilder().create();
List<EmergencyOil> list = IntStream.range(0,array.size()).mapToObj(i -> gson.fromJson(array.get(i).toString(),EmergencyOil.class)).collect(Collectors.toList());
db.execSQL("CREATE TABLE IF NOT EXISTS emergencyoil (ID INTEGER , startDate TEXT, endDate TEXT, duration INTEGER) ");
for(int i=0;i<list.size();i++){
db.execSQL("INSERT INTO emergencyoil VALUES ( " + i+","+
list.get(i).getStartDate() +","+
list.get(i).getEndDate() +","+
list.get(i).getDuration()+","+list.get(i).getTemp());
}
return list;
}
@RequiresApi(api = Build.VERSION_CODES.N)
private List<EmergencyOilLevelGS> converterEmergencyOilLevelGS() throws IOException
{
JsonArray array=readJson("EmergencyOilLevelGS");
Gson gson = new GsonBuilder().create();
List<EmergencyOilLevelGS> list = IntStream.range(0,array.size()).mapToObj(i -> gson.fromJson(array.get(i).toString(),EmergencyOilLevelGS.class)).collect(Collectors.toList());
db.execSQL("CREATE TABLE IF NOT EXISTS emergencyoillevelgs (ID INTEGER , startDate TEXT, endDate TEXT, duration INTEGER) ");
for(int i=0;i<list.size();i++){
db.execSQL("INSERT INTO emergencyoillevelgs VALUES ( " + i+","+
list.get(i).getStartDate() +","+
list.get(i).getEndDate() +","+
list.get(i).getDuration());
}
return list;
}
@RequiresApi(api = Build.VERSION_CODES.N)
private List<FontBrakePressureEmergency> converterFontBrakePressureEmergencies() throws IOException
{
JsonArray array=readJson("FontBrakePressureEmergency");
Gson gson = new GsonBuilder().create();
List<FontBrakePressureEmergency> list = IntStream.range(0,array.size()).mapToObj(i -> gson.fromJson(array.get(i).toString(),FontBrakePressureEmergency.class)).collect(Collectors.toList());
db.execSQL("CREATE TABLE IF NOT EXISTS fontbrakepressureemergency (ID INTEGER , startDate TEXT, endDate TEXT, duration INTEGER) ");
for(int i=0;i<list.size();i++){
db.execSQL("INSERT INTO fontbrakepressureemergency VALUES ( " + i+","+
list.get(i).getStartDate() +","+
list.get(i).getEndDate() +","+
list.get(i).getDuration());
}
return list;
}
private void addDataToDatabase(){
// List<Errors> errors = new ArrayList<>();
// errors.add(new BackBrakePressureEmergency(4,"startDate","endDate",4));
// errors.add(new BackBrakePressureEmergency(4,"startDate","endDate",4));
// errors.add(new BackBrakePressureEmergency(4,"startDate","endDate",4));
// errors.add(new BackBrakePressureEmergency(4,"startDate","endDate",4));
SQLiteDatabase db = getBaseContext().openOrCreateDatabase("MyDiplom.db", MODE_PRIVATE, null);
db.execSQL("CREATE TABLE IF NOT EXISTS backbrakepressureemergency (ID INTEGER ,turnover INTEGER, startDate TEXT, endDate TEXT, duration INTEGER) ");
// for (Errors er: errors) {
// db.execSQL("INSERT INTO backbrakepressureemergency VALUES ( " + turnover+"," +
// er.getStartDate() +","+
// er.getEndDate() +","+
// er.getDuration());
// }
// db.close();
}
}
Как мне теперь добавить в базу?
package Models;
public abstract class Errors {
//public String turnover;
//public String startDate;
private String startDate;
private String endDate;
private int duration;
public Errors(String startDate,String endDate,int duration) {
this.startDate=startDate;
this.endDate=endDate;
this.duration=duration;
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate;
}
public int getDuration() {
return duration;
}
public void setDuration(int duration) {
this.duration = duration;
}
}