我如何检查 table 是否已经存在
how do I check if a table already exists
当我 运行 应用程序时,我希望我的应用程序自动创建数据库和 tables,但是在这段代码中,我的应用程序只创建没有 tables[=13= 的数据库]
所以我在按下按钮时就做到了,当时还有插入查询形式的数据,将由 addBio 函数执行,但总是 returns 一个现有的 table 错误,那么如何处理这个
DatabaseHelper.java
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "biodata.db";
private static final String TABEL_NAME = "biodata";
private static final int DATABASE_VERSION = 1;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
String sql = "CREATE TABLE " + TABEL_NAME + " ( id INTEGER PRIMARY KEY AUTOINCREMENT, nama TEXT, lahir TEXT, kelamin TEXT, hobi TEXT, alamat TEXT);";
sqLiteDatabase.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int i, int i1) {
db.execSQL("DROP TABLE IF EXISTS '" + TABEL_NAME + "'");
onCreate(db);
}
public void addBio (String bio) {
SQLiteDatabase db = this.getWritableDatabase();
db.execSQL(bio);
Log.d("TAGINI", bio);
}
}
MainActivity.java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import java.util.ArrayList;
public class TambahActivity extends AppCompatActivity {
private Button btnSimpan;
private DatabaseHelper databaseHelper;
private EditText nama, lahir, hobi, alamat, jk;
private ArrayList<String> arrayList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tambah);
databaseHelper = new DatabaseHelper(this);
nama = findViewById(R.id.nama);
lahir = findViewById(R.id.tanggal_lahir);
jk = findViewById(R.id.jk);
hobi = findViewById(R.id.hobi);
alamat = findViewById(R.id.alamat);
btnSimpan = findViewById(R.id.btnSimpan);
btnSimpan.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String sql = "INSERT INTO biodata (id, nama, lahir, kelamin, hobi, alamat) VALUES('', '" +
nama.getText().toString() +"','"+
lahir.getText().toString()+"','"+
jk.getText().toString()+"','"+
hobi.getText().toString()+"','"+
alamat.getText().toString()+"');";
databaseHelper.addBio(sql);
}
});
}
}
我希望当我 运行 应用程序时,数据库和 table 会自动在其中创建
您不需要编写插入内容sql
。请改用 db.insert
。
btnSimpan.setOnClickListener(new View.OnClickListener() {
addBio(nama.getText().toString());
});
添加生物
public void addBio (String name) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues insertValues = new ContentValues();
insertValues.put("name", name);
db.insert("biodata", null, insertValues);
}
当我 运行 应用程序时,我希望我的应用程序自动创建数据库和 tables,但是在这段代码中,我的应用程序只创建没有 tables[=13= 的数据库]
所以我在按下按钮时就做到了,当时还有插入查询形式的数据,将由 addBio 函数执行,但总是 returns 一个现有的 table 错误,那么如何处理这个
DatabaseHelper.java
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "biodata.db";
private static final String TABEL_NAME = "biodata";
private static final int DATABASE_VERSION = 1;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
String sql = "CREATE TABLE " + TABEL_NAME + " ( id INTEGER PRIMARY KEY AUTOINCREMENT, nama TEXT, lahir TEXT, kelamin TEXT, hobi TEXT, alamat TEXT);";
sqLiteDatabase.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int i, int i1) {
db.execSQL("DROP TABLE IF EXISTS '" + TABEL_NAME + "'");
onCreate(db);
}
public void addBio (String bio) {
SQLiteDatabase db = this.getWritableDatabase();
db.execSQL(bio);
Log.d("TAGINI", bio);
}
}
MainActivity.java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import java.util.ArrayList;
public class TambahActivity extends AppCompatActivity {
private Button btnSimpan;
private DatabaseHelper databaseHelper;
private EditText nama, lahir, hobi, alamat, jk;
private ArrayList<String> arrayList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tambah);
databaseHelper = new DatabaseHelper(this);
nama = findViewById(R.id.nama);
lahir = findViewById(R.id.tanggal_lahir);
jk = findViewById(R.id.jk);
hobi = findViewById(R.id.hobi);
alamat = findViewById(R.id.alamat);
btnSimpan = findViewById(R.id.btnSimpan);
btnSimpan.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String sql = "INSERT INTO biodata (id, nama, lahir, kelamin, hobi, alamat) VALUES('', '" +
nama.getText().toString() +"','"+
lahir.getText().toString()+"','"+
jk.getText().toString()+"','"+
hobi.getText().toString()+"','"+
alamat.getText().toString()+"');";
databaseHelper.addBio(sql);
}
});
}
}
我希望当我 运行 应用程序时,数据库和 table 会自动在其中创建
您不需要编写插入内容sql
。请改用 db.insert
。
btnSimpan.setOnClickListener(new View.OnClickListener() {
addBio(nama.getText().toString());
});
添加生物
public void addBio (String name) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues insertValues = new ContentValues();
insertValues.put("name", name);
db.insert("biodata", null, insertValues);
}