使用代码androidstudio将值手动插入sqlite表

时间:2018-07-28 16:12:26

标签: android-studio android-sqlite

我想向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;

    }

}

1 个答案:

答案 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方法捕获,从而使处理得以继续)。

说通常将现有的(外部创建的)数据库作为资产提供,在安装应用程序后首次运行时将其复制。