android - 如何在 Android 中使用 SQLite 将 TABLE ID AUTO_INCREMENT 传递给另一个多表
问题描述
如何将第一个表 ID 传递给第二个表,以便在第二个表中为 1 个员工插入多条记录
例如,FIRST_TABLE 1 中的员工现在在 SECOND_TABLE 中有一些个人详细信息 员工有更多数据和更多行
用于标识我想在 Second_table 中传递表 id。谁能帮我,
提前致谢..
这是我的数据库代码
TABLE_NAME_FARMER_SYNC = FIRST_TABLE
TABLE_NAME_ANIMAL_SYNC = SECOND_TABLE
db.execSQL("create table " + TABLE_NAME_FARMER_SYNC + "(NEW_INSURANCE_ID INTEGER PRIMARY KEY AUTOINCREMENT,INSURANCE_ID TEXT,INSURED_NAME TEXT,BANKHYPO_NAME TEXT,FARMER_NAME TEXT,VILLAGE TEXT,TALUKA TEXT,DISTRICT TEXT,TAGGING_DATE DATE)");
db.execSQL("create table " + TABLE_NAME_ANIMAL_SYNC + "(NEW_ANIMAL_ID INTEGER PRIMARY KEY AUTOINCREMENT,FARMER_ID INT,TAG_NO TEXT,ANIMAL_EAR_POSITION TEXT,ANIMAL_SPECIES TEXT,ANIMAL_BREED TEXT,ANIMAL_BODY_COLOR TEXT,ANIMAL_SHAPE_RIGHT TEXT,ANIMAL_SHAPE_LEFT TEXT,ANIMAL_SWITCH_OF_TAIL TEXT,AGE_YEARS NUMBER,ANIMAL_OTHER_MARKS NUMBER,PRAG_STATUS NUMBER,NUMBER_OF_LACTATION NUMBER,CURRENT_MILK NUMBER,SUM_INSURED NUMBER,TAG_IMAGE BLOB NOT NULL,HEAD_IMAGE BLOB NOT NULL,LEFT_SIDE_IMAGE BLOB NOT NULL,RIGHT_SIDE_IMAGE BLOB NOT NULL,TAIL_IMAGE BLOB NOT NULL,IDPROOF_IMAGE BLOB NOT NULL)");
在这里,我想将 SECOND_TABEL 中的 AUTO INCREMENT 的 NEW_INSURANCE_ID 作为 FARMER_ID 传递。
在 FirstTable 中插入数据
public boolean addFarmerName(String insurance_id, String insurename, String bankhypo, String farmername, String village, String taluka, String district, String tagging_date) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(INSURANCE_ID, insurance_id);
contentValues.put(INSURED_COLUMN, insurename);
contentValues.put(BNAKHYPO_COLUMN, bankhypo);
contentValues.put(FARMERNAME_COLUMN, farmername);
contentValues.put(VILLAGE_COLUMN, village);
contentValues.put(TALUKA_COLUMN, taluka);
contentValues.put(DISTRICT_COLUMN, district);
contentValues.put(TAGGING_DATE_COLUMN, tagging_date);
db.insert(TABLE_NAME_FARMER_SYNC, null, contentValues);
db.close();
return true;
}
在第二个表中插入数据
public boolean addAnimalsName(String tag, long farmer_id, String ear_position, String animal_species, String animal_breeds, String animal_body_color, String shape_right, String shape_left, String tail, String age, String marks_other, String prag, String lactation, String current_milk, String sum, byte[] tag_image, byte[] head_image, byte[] left_image, byte[] right_image, byte[] tail_image, byte[] id_proof_image) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(TAG_COLUMN, tag);
contentValues.put(FARMER_ID, farmer_id);
contentValues.put(ANIMAL_EAR_POSITION_COLUMN, ear_position);
contentValues.put(ANIMAL_SPECIES_COLUMN, animal_species);
contentValues.put(ANIMAL_BREED_COLUMN, animal_breeds);
contentValues.put(ANIMAL_BODY_COLOR_COLUMN, animal_body_color);
contentValues.put(ANIMAL_SHAPE_RIGHT_COLUMN, shape_right);
contentValues.put(ANIMAL_SHAPE_LEFT_COLUMN, shape_left);
contentValues.put(ANIMAL_SWITCH_OF_TAIL_COLUMN, tail);
contentValues.put(AGE_COLUMN, age);
contentValues.put(ANIMAL_OTHER_MARKS_COLUMN, marks_other);
contentValues.put(PRAG_STATUS_COLUMN, prag);
contentValues.put(NUMBER_OF_LACTATION_COLUMN, lactation);
contentValues.put(CURRENT_MILK_COLUMN, current_milk);
contentValues.put(SUM_INSURED_COLUMN, sum);
contentValues.put(TAG_IMAGE_COLUMN, tag_image);
contentValues.put(HEAD_IMAGE_COLUMN, head_image);
contentValues.put(LEFT_SIDE_IMAGE_COLUMN, left_image);
contentValues.put(RIGHT_SIDE_IMAGE_COLUMN, right_image);
contentValues.put(TAIL_IMAGE_COLUMN, tail_image);
contentValues.put(IDPROOF_IMAGE_COLUMN, id_proof_image);
db.insert(TABLE_NAME_ANIMAL_SYNC, null, contentValues);
db.close();
return true;
}
第一个活动代码
private void addDataInTable() {
boolean insertData = databaseHelper.addFarmerName(id, bank_insured, bank_hypo, editTextFarmerName.getText().toString() + "", editTextVillage.getText().toString() + "", editTextTaluka.getText().toString() + "",
editTextDistrict.getText().toString() + "", editTextTaggingDate.getText().toString() + "");
if (insertData) {
Toast.makeText(context, "Data Save Successfully in SQLite Database", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, "Data Not Save in SQLite Database", Toast.LENGTH_SHORT).show();
}
}
第二个活动代码
private void addDataInTable(byte[] NewEntryImg1, byte[] NewEntryImg2,
byte[] NewEntryImg3, byte[] NewEntryImg4, byte[] NewEntryImg5,
byte[] NewEntryImg6) {
boolean insertData = databaseHelper.addAnimalsName(tag_no, tag1_id, ear_position, animal_species, animal_breed, body_color, shape_right, shape_left,
tail_switch, age, other_marks, prag_status, lactations, milk_qty, sum_insured
, NewEntryImg1, NewEntryImg2, NewEntryImg3, NewEntryImg4, NewEntryImg5, NewEntryImg6);
if (insertData) {
Toast.makeText(context, "Data Save Successfully in SQLite Database", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, "Data Not Save in SQLite Database", Toast.LENGTH_SHORT).show();
}
}
解决方案
public int addFarmerName(String insurance_id, String insurename, String bankhypo,
String farmername, String village, String taluka, String district, String
tagging_date) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(INSURANCE_ID, insurance_id);
contentValues.put(INSURED_COLUMN, insurename);
contentValues.put(BNAKHYPO_COLUMN, bankhypo);
contentValues.put(FARMERNAME_COLUMN, farmername);
contentValues.put(VILLAGE_COLUMN, village);
contentValues.put(TALUKA_COLUMN, taluka);
contentValues.put(DISTRICT_COLUMN, district);
contentValues.put(TAGGING_DATE_COLUMN, tagging_date);
db.insert(TABLE_NAME_FARMER_SYNC, null, contentValues);
db.close();
return insurance_id;
}
然后是第一个活动代码
private void addDataInTable() {
int insuranceId = databaseHelper.addFarmerName(id, bank_insured, bank_hypo, editTextFarmerName.getText().toString() + "", editTextVillage.getText().toString() + "", editTextTaluka.getText().toString() + "",
editTextDistrict.getText().toString() + "", editTextTaggingDate.getText().toString() + "");
if (insuranceId != 0) {
Intent i = new Intent(this, SecondActivity.class);
i.putExtra("id",insuranceId);
startActivityForResult(i, 1);
} else {
Toast.makeText(context, "Data Not Save in SQLite Database", Toast.LENGTH_SHORT).show();
}
}
在第二个活动中
int id = getIntent().getStringExtra("id");
然后
for(int count =0 ;count<animalList.size();count++){
boolean insertData = databaseHelper.addAnimalsName(tag_no, id, ear_position,
animal_species, animal_breed, body_color, shape_right, shape_left,
tail_switch, age, other_marks, prag_status, lactations, milk_qty,
sum_insured, NewEntryImg1, NewEntryImg2, NewEntryImg3, NewEntryImg4, NewEntryImg5,
NewEntryImg6);
}
if (insertData) {
Toast.makeText(context, "Data Save Successfully in SQLite Database",
Toast.LENGTH_SHORT).show();
Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(Activity.RESULT_OK,returnIntent);
finish();
} else {
Toast.makeText(context, "Data Not Save in SQLite Database", Toast.LENGTH_SHORT).show();
}
现在在 FirstActivity
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == Activity.RESULT_OK){
String result=data.getStringExtra("result");
//success msg
}
if (resultCode == Activity.RESULT_CANCELED) {
//Write your code if there's no result
}
}
}//o
推荐阅读
- c++ - 当我尝试使用“this”指针时出现预期的表达式错误
- mysql - 如何授予用户权限以授予其他用户在mysql中的只读访问权限
- java - maven'实际参数和形式参数长度不同'的奇怪编译错误
- php - 如何在 PHP 中更改数组的键?
- spring-boot - 嵌入式服务器(微服务)是否等同于应用服务器(JbossEAP)?
- python - 对于给定的 Pandas df,按列对 df 进行排序(首先是最高的 SUMMED 值),然后在每个唯一值中按另一列排序
- gradle - 在使用 Gradle 5.4 的 multibuild 项目中,java 8 的 sourceSompatiblity 没有生效
- symfony - 如何在数据库中添加 JSON 字段?
- java - 应用程序无法加载 application.yml 文件
- regex - 使用 NIFI 中的替换文本从数据中提取文本时出错