내 문제는 5 개의 테이블이있어서 삽입 및 선택이 필요하다는 것입니다.삽입 및 선택이있는 5 개의 테이블이있는 데이터베이스
내가 한 일은 모든 테이블 클래스입니다 거기에 나는 내가 많은 발견
public class DBAdapter {
public static final String DB_NAME = "mol.db";
private static final int DB_VERSION = 1;
private static final String TAG = "DBAdapter"; //to log
private final Context context;
private SQLiteDatabase db;
public DBAdapter(Context context)
{
this.context = context;
OpenHelper openHelper = new OpenHelper(this.context);
this.db = openHelper.getWritableDatabase();
}
public static class OpenHelper extends SQLiteOpenHelper
{
public OpenHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(Contact.SQL_CREATE);
db.execSQL(Country.SQL_CREATE);
db.execSQL(Picture.SQL_CREATE);
db.execSQL(Product.SQL_CREATE);
db.execSQL(Project.SQL_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
Log.w(TAG, "Upgrading database from version "
+ oldVersion + " to " + newVersion
+ ", which will destroy all old data");
db.execSQL(Contact.SQL_DROP);
db.execSQL(Country.SQL_DROP);
db.execSQL(Picture.SQL_DROP);
db.execSQL(Product.SQL_DROP);
db.execSQL(Project.SQL_DROP);
onCreate(db);
}
데이터베이스를 만들어 거기에 DBAdapter 클래스가이
public class Contact
private static String IDCont = "id_contact";
private static String NameCont = "name_contact";
private static String StreetCont = "street_contact";
private static String Street2Cont = "street2_contact";
private static String Street3Cont = "street3_contact";
private static String ZipCont = "zip_contact";
private static String CityCont = "city_contact";
private static String CountryCont = "country_contact";
private static String Iso2Cont = "iso2_contact";
private static String PhoneCont = "phone_contact";
private static String Phone2Cont = "phone2_contact";
private static String FaxCont = "fax_contact";
private static String MailCont = "mail_contact";
private static String Mail2Cont = "mail2_contact";
private static String InternetCont = "internet_contact";
private static String DrivemapCont = "drivemap_contact";
private static String PictureCont = "picture_contact";
private static String LatitudeCont = "latitude_contact";
private static String LongitudeCont = "longitude_contact";
public static final String TABLE_NAME = "contact";
public static final String SQL_CREATE = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + "(" +
IDCont + "INTEGER not NULL," +
NameCont + " TEXT not NULL," +
StreetCont + " TEXT," +
Street2Cont + " TEXT," +
Street3Cont + " TEXT," +
ZipCont + " TEXT," +
CityCont + " TEXT," +
CountryCont + " TEXT," +
Iso2Cont + " TEXT," +
PhoneCont + " TEXT," +
Phone2Cont + " TEXT," +
FaxCont + " TEXT," +
MailCont + " TEXT," +
Mail2Cont + " TEXT," +
InternetCont + " TEXT," + //website of the contact
DrivemapCont + " TEXT," + //a link to a drivemap to the contact
PictureCont + " TEXT," + //a photo of the contact building (contact is not a person)
LatitudeCont + " TEXT," +
LongitudeCont + " TEXT," +
"primary key(id_contact)" +
"foreign key(iso2)";
and my insert looks like this
public boolean SQL_INSERT_CONTACT(int IDContIns, String NameContIns, String StreetContIns,
String Street2ContIns, String Street3ContIns, String ZipContIns,
String CityContIns, String CountryContIns, String Iso2ContIns,
String PhoneContIns, String Phone2ContIns, String FaxContIns,
String MailContIns, String Mail2ContIns, String InternetContIns,
String DrivemapContIns, String PictureContIns, String LatitudeContIns,
String LongitudeContIns) {
try{
db.execSQL("INSERT INTO " + "contact" +
"(" + IDCont + ", " + NameCont + ", " + StreetCont + ", " +
Street2Cont + ", " + Street3Cont + ", " + ZipCont + ", " +
CityCont + ", " + CountryCont + ", " + Iso2Cont + ", " +
PhoneCont + ", " + Phone2Cont + ", " + FaxCont + ", " +
MailCont + ", " + Mail2Cont + ", " + InternetCont + ", " +
DrivemapCont + ", " + PictureCont + ", " + LatitudeCont + ", " +
LongitudeCont + ") " +
"VALUES (" + IDContIns + ", " + NameContIns +", " + StreetContIns + ", " +
Street2ContIns + ", " + Street3ContIns + ", " + ZipContIns + ", " +
CityContIns + ", " + CountryContIns + ", " + Iso2ContIns + ", " +
PhoneContIns + ", " + Phone2ContIns + ", " + FaxContIns + ", " +
MailContIns + ", " + Mail2ContIns + ", " + InternetContIns + ", " +
DrivemapContIns + ", " + PictureContIns + ", " + LatitudeContIns + ", " +
LongitudeContIns +")");
return true;
}
catch (SQLException e) {
return false;
}
}
같은 SQL 문을 작성 다른 것들을 시도하고 그들을했지만 작동하도록 아무것도 얻지 못했습니다 ... 내가 내 활동 에있는 데이터베이스에 액세스 할 수있는 방법을 알고 싶습니다 그리고 내가 작동하도록 삽입을 얻을 수있는 그리고 sth 내 코드에 잘못 ? 당신의 도움에 대한 감사
그게 전부는 내가 단지 3 열
public class Country {
private static String Iso2Count = "iso2_country";
private static String NameCount = "name_country";
private static String FlagCount = "flag_image_url_country";
public static final String TABLE_NAME = "country";
public static final String SQL_CREATE = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + "(" +
Iso2Count + " TEXT not NULL," +
NameCount + " TEXT not NULL," +
FlagCount + " TEXT not NULL," +
"primary key(iso2_country)";
public boolean SQL_INSERT_COUNTRY(String Iso2CountIns, String NameCountIns, String FlagCountIns) {
try{
db.execSQL("INSERT INTO " + "country" +
"(" + Iso2Count + ", " + NameCount + ", " + FlagCount + ") " +
"VALUES (" + Iso2CountIns + ", " + NameCountIns +", " + FlagCountIns + ")");
return true;
}
catch (SQLException e) {
return false;
}
}
을 가지고 있기 때문에 난 내 나라 테이블과 그것을 시도
내 활동
public class MainTabActivity extends TabActivity {
private Context context;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.maintabactivity);
TabHost mTabHost = getTabHost();
Intent intent1 = new Intent().setClass(this,MapOfLight.class);
//Intent intent2 = new Intent().setClass(this,Test.class); //Testactivity
//Intent intent2 = new Intent().setClass(this,DetailView.class); //DetailView
Intent intent2 = new Intent().setClass(this,ObjectList.class); //ObjectList
//Intent intent2 = new Intent().setClass(this,Gallery.class); //Gallery
Intent intent3 = new Intent().setClass(this,ContactDetail.class);
mTabHost.addTab(mTabHost.newTabSpec("tab_mol").setIndicator(this.getText(R.string.mol), getResources().getDrawable(R.drawable.ic_tab_mol)).setContent(intent1));
mTabHost.addTab(mTabHost.newTabSpec("tab_highlights").setIndicator(this.getText(R.string.highlights),getResources().getDrawable(R.drawable.ic_tab_highlights)).setContent(intent2));
mTabHost.addTab(mTabHost.newTabSpec("tab_contacts").setIndicator(this.getText(R.string.contact),getResources().getDrawable(R.drawable.ic_tab_contact)).setContent(intent3));
mTabHost.setCurrentTab(1);
SQLiteDatabase db;
DBAdapter dh = null;
OpenHelper openHelper = new OpenHelper(this.context);
dh = new DBAdapter(this);
db = openHelper.getWritableDatabase();
dh.SQL_INSERT_COUNTRY("AT", "Austria", "AUT");
}
}에 그걸 얻기 위해 시도하는 방법
또 다른 질문은 삽입 삽입하고 별도의 클래스로 각 테이블에서 선택하는 것이 좋습니다, 그래서 나는 각 테이블에 대한 1 클래스가 있거나 DBAdapter에 넣어 수업?
무엇이 작동하지 않습니까? 오류가 있습니까? 전혀? –
정확한 문제를 지정하십시오. DB에 연결할 수 없습니까? INSERT가 실패합니까? ... 관련 오류 메시지를 표시하는 것을 잊지 마십시오. –
강제 종료 메시지가 표시되지 않습니다. – kirbby