我想向SQLite android中的表添加值。我在互联网上能找到的就是如何使用按钮添加值(通过创建用户界面来添加值)。 但是我想直接用代码手动执行此操作,这可能吗?如何? 谢谢。
下面是我正在处理的数据库!
PS:每列至少包含200个单词的文本
DATABASEHELPER.JAVA
public class DatabaseHelper extends SQLiteOpenHelper{
public static final String DATABASE_NAME="URTsqlite.db";
public static final String TABLE_NAME="Anatomy";
public static final String COL1="OrganName";
public static final String COL2="Overview";
public static final String COL3="Externalfeatures";
public static final String COL4="Internalfeatures";
public static final String COL5="role";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL( " create table " +TABLE_NAME+"(OrganName PRIMARY KEY,Overview TEXT,Externalfeatures TEXT,Internalfeatures TEXT,role TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " +TABLE_NAME );
onCreate(db);
}
public boolean insertData (String OrganName ,String Overview ,String Externalfeatures ,String Internalfeatures,String role)
{
SQLiteDatabase db=this.getWritableDatabase();
ContentValues contentValues=new ContentValues();
contentValues.put(COL1,OrganName);
contentValues.put(COL2,Overview);
contentValues.put(COL3,Externalfeatures);
contentValues.put(COL4,Internalfeatures);
contentValues.put(COL5,role);
long result=db.insert(TABLE_NAME,null,contentValues);
if(result==-1)
return false;
else
return true;
}
}
答案 0 :(得分:0)
有可能吗?
是的。您只需使用要添加的值调用insertData
方法。
例如假设您有一个Activity
并想添加一行,那么您可以在Activity的onCreate
方法中添加以下内容:-
公共类MyActivity扩展了AppCompatActivity {
DatabaseHelper myDB;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.myactivity_main);
myDB = new DatabaseHelper(this);
myDB.insertData("hammond","overview blah","external features blah","internal features blah","makes music");
......... other code
}
因此,每次运行活动的onCreate方法时,都会尝试添加一行(但是,由于OrganName是隐含的UNQIUE
,因为它是PRIMARY KEY
,所以一旦添加,就不再添加再次,冲突(重复)将由SQLiteDatabase insert
方法捕获,从而使处理得以继续)。
说通常将现有的(外部创建的)数据库作为资产提供,在安装应用程序后首次运行时将其复制。