Java 第二个表数据库SQLite Android Studio上没有数据
我试图为产品添加第二个表(这是一个简单实用的应用程序),第一个表是为注册用户添加的 添加产品时,日志中没有错误。 但是当我用SQLiteBrowser在第一个表“usuarios”中打开我的DB文件时,有数据,第二个表被创建了,但它没有任何数据,因为应用程序在添加时没有给我任何错误 我是SQLite的新手 SQlitehelper:Java 第二个表数据库SQLite Android Studio上没有数据,java,sqlite,android-studio,Java,Sqlite,Android Studio,我试图为产品添加第二个表(这是一个简单实用的应用程序),第一个表是为注册用户添加的 添加产品时,日志中没有错误。 但是当我用SQLiteBrowser在第一个表“usuarios”中打开我的DB文件时,有数据,第二个表被创建了,但它没有任何数据,因为应用程序在添加时没有给我任何错误 我是SQLite的新手 SQlitehelper: package com.meyven.registro.sqlite; import android.content.Context; import androi
package com.meyven.registro.sqlite;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
public class AdminSQLiteOpenHelper extends SQLiteOpenHelper {
private final int ver = 1;
private final String usuario = "CREATE TABLE usuarios (id INTEGER primary key autoincrement, Nombre TEXT, Correo TEXT, Password TEXT)";
private final String productos = "CREATE TABLE productos (id_productos INTEGER primary key autoincrement, Productos TEXT, Cantidad TEXT, Precio TEXT)";
public AdminSQLiteOpenHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(usuario);
db.execSQL(productos);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
//METODO ABRIR DB
public void abrirDB() {
this.getWritableDatabase();
this.getReadableDatabase();
}
//METODO CERRAR DB
public void cerrarDB() {
this.close();
}
//METODO QUE PERMITE VALIDAR SI EL USUARIO EXISTE
public Cursor consultarUsuPas(String usuario, String password) throws SQLException {
Cursor mcursor = null;
mcursor = this.getReadableDatabase().query("usuarios", new String[]{"id", "Nombre", "Correo", "Password"},
"Nombre like '"+usuario+"' and Password like '"+password+"'",
null,null,null,null);
return mcursor;
}
//METODO PARA VALIDAR REGISTRO SI YA EXISTE
public Cursor registroExiste(String usuario) throws SQLException {
Cursor mCursor = null;
mCursor = this.getReadableDatabase().query("usuarios", new String[]{"id", "Nombre", "Correo", "Password"},
"Nombre like '"+usuario+"'",
null,null,null,null);
return mCursor;
}
}
正在添加产品的活动:
package com.meyven.registro.activities;
import androidx.appcompat.app.AppCompatActivity;
import android.content.ContentValues;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.meyven.registro.R;
import com.meyven.registro.sqlite.AdminSQLiteOpenHelper;
public class AgregarProducto extends AppCompatActivity {
AdminSQLiteOpenHelper helper = new AdminSQLiteOpenHelper(this, "BD", null, 2);
EditText editTxtProducto, editTxtCantidad, editTxtPrecio;
Button btnAgregar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_agregar_producto);
editTxtProducto = findViewById(R.id.editTxtProducto);
editTxtCantidad = findViewById(R.id.editTxtCantidad);
editTxtPrecio = findViewById(R.id.editTxtPrecio);
btnAgregar = findViewById(R.id.btnAgregar);
btnAgregar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
helper.abrirDB();
insertarProducto(
String.valueOf(editTxtProducto),
String.valueOf(editTxtCantidad),
String.valueOf(editTxtPrecio)
);
helper.cerrarDB();
}
});
}
public void insertarProducto(String producto, String cantidad, String precio) {
if(!producto.isEmpty() && !cantidad.isEmpty() && !precio.isEmpty()) {
ContentValues products = new ContentValues();
products.put("Productos", producto);
products.put("Cantidad", cantidad);
products.put("Precio", precio);
helper.getWritableDatabase().insert("productos", null, products);
editTxtProducto.setText("");
editTxtCantidad.setText("");
editTxtPrecio.setText("");
Toast.makeText(this, "Registro exitoso", Toast.LENGTH_SHORT).show();
Intent i = new Intent (getApplicationContext(), HomeActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
} else {
Toast.makeText(this, "Debes llenar todos los campos", Toast.LENGTH_LONG).show();
}
}
}
第一个正常工作的表的活动(用户注册)
package com.meyven.registro.activities;
import androidx.appcompat.app.AppCompatActivity;
import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.meyven.registro.R;
import com.meyven.registro.sqlite.AdminSQLiteOpenHelper;
public class RegisterActivity extends AppCompatActivity {
EditText editTextNombreReg, editTextPassReg, editTextCorreoReg;
Button btnRegister;
AdminSQLiteOpenHelper helper = new AdminSQLiteOpenHelper(this, "BD", null, 1);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
btnRegister = findViewById(R.id.btnRegister);
editTextNombreReg = findViewById(R.id.editTextNombreReg);
editTextPassReg = findViewById(R.id.editTextPassReg);
editTextCorreoReg = findViewById(R.id.editTextCorreoReg);
btnRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
helper.abrirDB();
String usuarioReg = editTextNombreReg.getText().toString();
Cursor cursor = helper.registroExiste(usuarioReg);
if(cursor.getCount() > 0 ) {
Toast.makeText(RegisterActivity.this, "Usuario existente", Toast.LENGTH_SHORT).show();
} else {
insertarRegistro(
String.valueOf(editTextNombreReg.getText()),
String.valueOf(editTextPassReg.getText()),
String.valueOf(editTextCorreoReg.getText()));
helper.cerrarDB();
}
}
});
}
//METODO QUE PERMITE INSERTAR REGISTROS EN LA TABLA USUARIOS
public void insertarRegistro(String nombre, String password, String correo) {
ContentValues valores = new ContentValues();
valores.put("Nombre", nombre);
valores.put("Password", password);
valores.put("Correo", correo);
helper.getWritableDatabase().insert("usuarios", null, valores);
Toast.makeText(this, "Registro exitoso", Toast.LENGTH_SHORT).show();
Intent i = new Intent (getApplicationContext(), MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
}
}