android - 无法在我的 android 应用程序中创建数据库
问题描述
我想用 SQLite 数据库创建一个应用程序,但我不知道为什么我不能创建数据库
class Db_Connection(context: Context?) : SQLiteOpenHelper(context,"my_db",null, 1) {
override fun onCreate(p0: SQLiteDatabase?) {
var create_Table =
"Create Table product( id INTEGER PRIMARY KEY AUTOINCREMENT , name TEXT)"
p0!!.execSQL(create_Table)
}
override fun onUpgrade(p0: SQLiteDatabase?, p1: Int, p2: Int) {
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Db_Connection(this)
}
解决方案
那么这是基于java的代码。希望它可以帮助你一点
创建一个数据库类并将其扩展为 SQLiteOpenHelper 类
public class DatabaseHelper extends SQLiteOpenHelper implements Constants {
private static final String dbname = "towers.db";
private static final int dbversion = 1;
public DatabaseHelper(Context context) {
super(context, dbname, null, dbversion);
}
@Override
public void onCreate(SQLiteDatabase db) {
// String query = "CREATE TABLE TOWERS_TABLE (_id INTEGER PRIMARY KEY AUTOINICREMENT, CIRCLE TEXT, OPERATOR TEXT, NETWORK TEXT, CELLID TEXT, SIGNAL_STRENGTH TEXT)";
String query = "CREATE TABLE TOWERS (_id INTEGER PRIMARY KEY AUTOINICREMENT, DATA TEXT)";
db.execSQL(query);
}
public void insertData(String data, SQLiteDatabase database){
try {
ContentValues values = new ContentValues();
values.put("data",data);
database.insert("TOWERS",null,values);
}catch (SQLException e){
e.printStackTrace();
}
}
public void clearData(SQLiteDatabase db){
String query = "DROP TABLE IF EXISTS TOWERS";
db.execSQL(query);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
现在创建一个要添加值的数据库类对象
databaseHelper = new DatabaseHelper(context);
database = databaseHelper.getWritableDatabase();
databaseHelper.insertData(data,database); //Here data is the value that you want to store
推荐阅读
- arm - 当您不关心新通道时,如何在 clang/AArch64 上使用 NEON 内在函数将 int32x2_t 扩展为 int32x4_t?
- aem - “org.apache.commons.mail.EmailException:提供的消息无效”同时使用 ACS 公共电子邮件服务发送电子邮件通知
- python - 如何检查具有多个子列表的列表中是否存在子字符串?
- laravel - 来自 Docker(Nginx)的 Bootstrap(Laravel)资产 404 错误
- spring-cloud-dataflow - 作业实例已存在且已完成参数={-spring.cloud.task.executionid=2}。如果要再次运行此作业,请更改参数
- python-3.x - 使用 for 循环进行并行迭代
- python - 由于多个外键,Flask-SQL 炼金术缓慢插入
- java - 异常正在发生,我不知道为什么
- c# - App.UseSession() 与 App.UseAuthentication(CookieAuthenticationDefaults.AuthenticationScheme) 与 App.UseCookiePolicy()
- c - 在没有 GTK/QT 的 Linux 中创建系统托盘图标