Está en la página 1de 12

PROGRAMAS CON ACCESO A BASE

DE DATOS
Interacción humano computadora

13 DE ENERO DE 2021
ING. PORTUGAL LUNA JOSE SALVADOR
Villegas Robles Alfonso
Calificaciones SQLite
Elementos necesarios:

Diseño:
Código MainActivity
public class MainActivity extends AppCompatActivity {
//se crean las variables necesarias para los componentes y adicionales para
posterior uso
private EditText txtNombreAlumno, txtNumComtrol, txtMateria,
txtCalificacion,txtID;
private Button btnAgregar, btnEliminar, btnGuardar, btnBuscar, btnAnterior,
btnSiguiente;
private BasedeDatos bd;
int ID;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//se referencian las variables anteriormente creadas


txtNumComtrol=(EditText)findViewById(R.id.txtNumControl);
txtNombreAlumno=(EditText)findViewById(R.id.txtNombreAlumno);
txtMateria=(EditText)findViewById(R.id.txtMateria);
txtCalificacion=(EditText)findViewById(R.id.txtCalificacion);
txtID=(EditText)findViewById(R.id.txtID);
btnAgregar=(Button) findViewById(R.id.btnAgregar);
btnAnterior=(Button) findViewById(R.id.btnAnterior);
btnBuscar=(Button) findViewById(R.id.btnBuscar);
btnEliminar=(Button) findViewById(R.id.btnEliminar);
btnGuardar=(Button) findViewById(R.id.btnGuardar);
btnSiguiente=(Button) findViewById(R.id.btnSiguiente);

bd=new BasedeDatos(getApplicationContext(),//se crea un objeto de la


clase base de datos
null,
null,
1);

//para agregar un registro se utiliza el objeto de a base de datos y su


metodo correspondiente
btnAgregar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ID=bd.insertaAlumno(
txtNombreAlumno.getText().toString(),
txtNumComtrol.getText().toString());
//muestra el id en pantalla
txtID.setText(String.valueOf(ID));
}
});

btnSiguiente.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//verifica que no este vacio el campo y ejecuta el metodo para
recuperar los datos
if(txtID.getText().toString().compareTo("")!=0){
ID=Integer.parseInt(txtID.getText().toString());
Alumno alumno=bd.siguienteAlumno(ID);
if(alumno!=null){
txtID.setText(String.valueOf(alumno.get_id()));
txtNombreAlumno.setText(alumno.getNombre());
txtNumComtrol.setText(alumno.getNo_control());
}
}
}
});

btnAnterior.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//verifica que no este vacio el campo y ejecuta el metodo para
recuperar los datos
if(txtID.getText().toString().compareTo("")!=0){
ID=Integer.parseInt(txtID.getText().toString());
Alumno alumno=bd.anteriorAlumno(ID);
if(alumno!=null){
txtID.setText(String.valueOf(alumno.get_id()));
txtNombreAlumno.setText(alumno.getNombre());
txtNumComtrol.setText(alumno.getNo_control());
}
} }
});

btnGuardar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//envia los datos a la clase alumno y ejecuta el metodo
Alumno alumno=new Alumno();
alumno.set_id(Integer.parseInt(txtID.getText().toString()));
alumno.setNombre(txtNombreAlumno.getText().toString());
alumno.setNo_control(txtNumComtrol.getText().toString());
bd.actualizaAlumno(alumno);
}
});

btnEliminar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//envia el id al metodo eliminar y limpia los datos de la
pantalla
bd.eliminar(Integer.parseInt(txtID.getText().toString()));
txtID.setText("");
txtNumComtrol.setText("");
txtNombreAlumno.setText("");
}
});

btnBuscar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//envia los datos a la clase alumno y el objeto a la clase base
de datos para buscar.
Alumno alumno = new Alumno();
alumno.set_id(Integer.parseInt(txtID.getText().toString()));
alumno.setNombre(txtNombreAlumno.getText().toString());
alumno.setNo_control(txtNumComtrol.getText().toString());

Alumno alumnoResultado;
alumnoResultado=bd.buscaAlumno(alumno);
if(alumnoResultado!=null){
txtID.setText(String.valueOf(alumnoResultado.get_id()));
txtNombreAlumno.setText(alumnoResultado.getNombre());
txtNumComtrol.setText(alumnoResultado.getNo_control());
}
}
});
}
}

código base de datos


public class BasedeDatos extends SQLiteOpenHelper {
//variables a usar
private static final int VERSION_BASEDEDATOS = 1;
private static final String NOMBRE_BASEDEDATOS = "calificacion.db";
private static final String TABLA_ALUMNO =
"CREATE TABLE [alumno] (" +
"_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT," +
"[nombre] VARCHAR(255)," +
"[no_control] VARCHAR(255))";
private static final String TABLA_CALIFICACION =
"CREATE TABLE [calificacion] (" +
"_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT," +
"[id_alumno] INTEGER," +
"[materia] VARCHAR (255)," +
"[valor] FLOAT )";

public BasedeDatos(Context context, String name,


SQLiteDatabase.CursorFactory factory, int version) {
super(context, NOMBRE_BASEDEDATOS, factory, VERSION_BASEDEDATOS);
}

@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
//se ejecuta la creacion de las tablas
sqLiteDatabase.execSQL(TABLA_ALUMNO);
sqLiteDatabase.execSQL(TABLA_CALIFICACION);
//se inserta un valor para verificar que funcionó
sqLiteDatabase.execSQL("INSERT INTO alumno(_id,nombre,no_control) " +
"values (1,'Pedro Lopez', '201140001')");
}

@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int
newVersion) {
sqLiteDatabase.execSQL("DROP TABLE IF EXISTS [alumno]");
sqLiteDatabase.execSQL("DROP TABLE IF EXISTS [calificacion]");
onCreate(sqLiteDatabase);
}

public int insertaAlumno(String nombre, String no_control){


//se crea objeto de base de datos
SQLiteDatabase sqLiteDatabase =getWritableDatabase();
//se registran los parametros
sqLiteDatabase.execSQL("INSERT INTO alumno(nombre, no_control) " +
"values ('"+nombre+"','"+no_control+"')");
//se recupera el ultimo id, es decir, el del ultimo registro
sqLiteDatabase=getReadableDatabase();
Cursor c=sqLiteDatabase.rawQuery("SELECT MAX(_id) FROM ALUMNO", new
String []{});
if (c!=null){
if(c.moveToFirst()){
//regresa el id para asignarlo al campo de id en la interfaz.
return (c.getInt(0));
}
}
return -1;
}

public Alumno siguienteAlumno(int ID){


//manda el id como un arreglo
String [] args = new String[]{String.valueOf(ID)};
SQLiteDatabase sqLiteDatabase=getReadableDatabase();
//ejecuta la sentencia sql
Cursor c=sqLiteDatabase.rawQuery("SELECT _id, nombre, no_control FROM
alumno WHERE _id>? ORDER BY _id ",args);
if(c!=null){
if(c.moveToFirst()){
//envia los datos a la clase alumno para recuperarlos en la
clase main activity
Alumno alumno = new Alumno();
alumno.set_id(c.getInt(0));
alumno.setNombre(c.getString(1));
alumno.setNo_control(c.getString(2));
return alumno;
}
}
return null;
}

public Alumno anteriorAlumno(int ID){


String [] args = new String[]{String.valueOf(ID)};
SQLiteDatabase sqLiteDatabase=getReadableDatabase();
//ejecuta el comando y los ordena de menor a mayor
Cursor c=sqLiteDatabase.rawQuery("SELECT _id, nombre, no_control FROM
alumno WHERE _id<? ORDER BY _id",args);
if(c!=null){
if(c.moveToFirst()){
//envia los datos a la clase alumno
Alumno alumno = new Alumno();
alumno.set_id(c.getInt(0));
alumno.setNombre(c.getString(1));
alumno.setNo_control(c.getString(2));
return alumno;
}
}
return null;
}

public void actualizaAlumno(Alumno alumno){


//arreglo con los datos a registrar
String [] args=new String[]
{String.valueOf(alumno.get_id()),alumno.getNombre(),alumno.getNo_control()};
SQLiteDatabase sqLiteDatabase = getWritableDatabase();
//se ejecuta
sqLiteDatabase.execSQL("update alumno set nombre=?, no_control=?" +
" where _id=?",args);
}

public void eliminar(int ID){


SQLiteDatabase sqLiteDatabase = getWritableDatabase();
//sentencia para eliminar el alumno que se muestra en la pantalla
sqLiteDatabase.execSQL("delete from alumno where
_id="+String.valueOf(ID));
}

public Alumno buscaAlumno (Alumno alumno){


SQLiteDatabase sqLiteDatabase =getReadableDatabase();
Cursor c =sqLiteDatabase.rawQuery(
"select _id, nombre,no_control from alumno where" +
"_id="+alumno.get_id()+"or (nombre like
'%"+alumno.getNombre()+"%' or"
+"no_control like '%"+alumno.getNo_control()+"'%)",
new String[]{}
);
if(c!=null){
if(c.moveToFirst()){
Alumno resultado = new Alumno();
resultado.set_id(c.getInt(0));
resultado.setNombre(c.getString(1));
resultado.setNo_control(c.getString(2));
return resultado;
}
}
return null;
}
}

Codigo alumno
public class Alumno {
private int _id;
private String nombre;
private String no_control;
//metodos para estar recibiendo y enviando los datos de los alumnos.
public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {


this.nombre = nombre;
}

public String getNo_control() {


return no_control;
}

public void setNo_control(String no_control) {


this.no_control = no_control;
}

public int get_id() {


return _id;
}

public void set_id(int _id) {


this._id = _id;
}
}
Consulta web
Elementos:

Codigo:
public class MainActivity extends AppCompatActivity {
//variables a utilizar
private EditText datos;
private String valor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//se inicializan las variabñes
datos=(EditText) findViewById(R.id.editText);
Thread hilo = new Thread(new Runnable() {
@Override
public void run() {
try {
//url del servidor de base de datos
URL url = new
URL("http://192.168.1.105:80/consultaCancion.php?_id=1");
//buffer para leer el resultado del webservice
BufferedReader in = new BufferedReader(
new InputStreamReader(url.openStream())//se conecta con el
webservice
);
//muestra el resultado en el multiline
valor=in.readLine()+"\n";
valor=valor + in.readLine()+"\n";
valor=valor + in.readLine();
runOnUiThread(new Runnable() {
@Override
public void run() {
datos.setText(valor);//se muestra en pantalla
}
});
Log.i("Consulta","Datos Recuperados");
in.close();
}catch (Exception e){
Log.e("Error web",e.toString());
}

}
});
hilo.start();
}
}

codigo consultarCancion
<?php
include("conexion.php");
$_id=$_GET["_id"];
$consulta="select * from cancion where
_id=$_id";
$resultado = mysqli_query($conexion,
$consulta)
or die("No se pudo consultar la
cancion");

if($fila=mysqli_fetch_array($resultado)){
echo $fila[0]."\n";
echo $fila[1]."\n";
echo $fila[2];
}else{
echo " No encontrada";
}
?>
Conexion con mysql
Elementos:
 conector jdbc para mysql

Codigo
public class MainActivity extends AppCompatActivity {
//variables
private EditText datos;
private ResultSet rs;
private Statement st;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//se referencian las variables
datos=(EditText) findViewById(R.id.editText);

Thread hilo = new Thread(new Runnable() {


@Override
public void run() {
//objeto para coneccion con un servidor
Connection connectionMySQL;
String urlConexionMySQL = "";
//url del servidor
urlConexionMySQL = "jdbc:mysql://127.0.0.1:3307/canciones";
try {
Class.forName("com.mysql.jdbc.Driver");
//se conecta con la base de datos
connectionMySQL =
DriverManager.getConnection(urlConexionMySQL, "root", "123");
// sentencia sql
String SqLEjecutar = "select * from cancion";
//se ejecuta la sentencia
st = connectionMySQL.createStatement();
rs = st.executeQuery(SqLEjecutar);
runOnUiThread(new Runnable() {
@Override
public void run() {
try {
//se muestran los resultados en pantalla
while (rs.next()) {
datos.setText(datos.getText().toString() +
rs.getObject("_id") + "" +
rs.getObject("nombre") + "" +
rs.getObject("cantante") + "\n");
}
st.close();
rs.close();
} catch (SQLException e) {
Log.e("SQL Exception", "Error " +
e.getMessage());
}
}
});
}catch (SQLException | ClassNotFoundException e) {
Log.e("Error ", e.toString());
}
}
});
hilo.start();
}
}

También podría gustarte