android-studio - 使用代码 androidstudio 将值手动插入到 sqlite 表中
问题描述
我想向 SQLite android 中的表添加值。我在互联网上只能找到如何使用按钮添加值(通过创建用户界面来添加值)。但是我想用代码直接手动执行此操作,是否可能以及如何?谢谢。
下面是我正在处理的数据库!
PS:值是每列至少200字的文本
数据库助手.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;
}
}
解决方案
有可能吗?怎么做?
是的。您只需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
,那么一旦添加它将不再被添加,冲突(重复)将被 SQLiteDatabaseinsert
方法,从而允许处理继续)。
说通常预先存在的(外部创建的)数据库将作为资产提供,在安装应用程序后首次运行时复制它。
推荐阅读
- ios - UIImageView Asset 在生产iOS13中设置了一条蓝线
- javascript - 使用正则表达式匹配提取数字、点和逗号
- javascript - 如何检查正则表达式是否无限
- python - Python Pandas - .isnull() 不适用于完整的数据帧索引
- java - Java算法逻辑的执行时间优化
- loops - 在 Python v3 中使用 while 循环计算 pi 的值
- python - 在 Scapy 中读取部分 pcap 文件
- java - 使用 2 行和 3 列的 Cucumber DataTables
- swift - SwiftUI 更新导航操作的状态
- python - I need make a weighted average using two matrix