Professional Documents
Culture Documents
3. DEFINICIONES:
SimUTE: Plataforma de simulación de un robot el cual es usado para fines
educativos
Ejecutores: Manejo de varios hilos mediante instrucciones
Bases de datos: conjunto de datos en el cual nos permite guardar las imágenes
en este caso para su correcta manipulación
4. BASE CONCEPTUAL:
1. SimUTE
Ejecutores
1
Bases de datos
5. ACTIVIDADES PREVIAS:
Describa detalladamente:
a. ¿Qué son los ejecutores y de qué tipos existen?
JDBC es usado para enviar comandos SQL hacia una base de datos
relacional, que puede ser Oracle, Infomix, SyBase, etc.
Establece una conexión con una BD
Envía sentencias SQL
Procesa los resultados
Connection con = DriverManager.getConnection ( "jdbc:odbc:wombat",
"login", "password");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
while (rs.next()) { int x = rs.getInt("a"); String s = rs.getString("b"); float f
= rs.getFloat("c"); }
2
6. MÉTODO/PROCEDIMIENTO
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
Se crea una clase donde direccionamos losa tributos que tendrán las imágenes
package simute.test;
import java.awt.Image;
import java.sql.Timestamp;
3
this.id = id;
}
@Override
public String toString() {
return this.id+" : "+this.name;
}
Como primer paso para la base de datos debemos crear una instancia que nos
de una conexión para la base de datos
4
fis = new FileInputStream(file);
PreparedStatement pstm = connection.prepareStatement("INSERT into
"+
" imagen(tipo, fecha, archivo) " + " VALUES(?,?,?)");
pstm.setString(1,flecha);
pstm.setTimestamp(2,java.sql.Timestamp.from(Instant.now()));
pstm.setBinaryStream(3, fis,(int) file.length());
pstm.execute();
pstm.close();
return true;
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
} catch (SQLException e) {
System.out.println(e.getMessage());
} finally {
try {
fis.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
return false;
}
Cuarto debemos crear una instancia que convierte una cadena de bytes en una
imagen jpg
5
try { //antes de agregar el campo imagen, realiza la conversion de bytes
a JPG
img.setArchivo(ConvertirImagen(resultSet.getBytes("archivo")));
} catch (IOException ex) {
System.err.println(ex.getMessage());
}
//por ultimo añade el objeto imagen:img al DefaultListModel
dml.addElement(img);
}
}
catch (SQLException ex) {
System.err.println(ex.getMessage());
}
return dml;
}
6
int index = this.Lista_Imagenes.getSelectedIndex();//obtiene index
seleccionado
if( index != -1)
{
//Extrae la clase imagen que corresponde a la posición donde se hizo
un clic
imagen img = (imagen)this.modListaImagen.getElementAt(index);
//redimensiona imagen
double alto = img.getArchivo().getHeight(null) /
Math.ceil(img.getArchivo().getHeight(null)/300f) ;
double ancho =img.getArchivo().getWidth(null) /
Math.ceil(img.getArchivo().getWidth(null)/320f) ;
Icon icon = new ImageIcon(
img.getArchivo().getScaledInstance((int)ancho,(int)alto,
Image.SCALE_AREA_AVERAGING) );
this.FOTO.setText("");
this.FOTO.setIcon( icon );//coloca imagen en el JLabel
JFileChooser gua=new JFileChooser();
gua.setFileFilter(new FileNameExtensionFilter("Image Files", "jpg",
"png", "tif"));
gua.showSaveDialog(null);
Path pth=gua.getSelectedFile().toPath();
JOptionPane.showMessageDialog(null,pth.toString());
try {
ImageIO.write((RenderedImage) img.getArchivo(), "JPEG",new
File(pth.toString()+".JPG"));
} catch (IOException ex) {
Logger.getLogger(Interfaz.class.getName()).log(Level.SEVERE,
null, ex);
}
7. EQUIPOS Y MATERIALES:
- Java
- NetBeans
- SimUTE
7
8. CUESTIONARIO DE INVESTIGACIÓN:
DIFERENCIAS
Las tareas ForkJoinPool es Usa el ejecutor provisto Usa un tipo
concurrentes una para la ejecución de la especial de
son implementación tarea base y un grupo de
desarrolladas especializada de LinkedBlockingQueue subprocesos
en el método ExecutorService como una cola de conocido como
run(). que implementa finalización. ForkJoinPool
el algoritmo de
robo de trabajo
Como primer paso debemos crear una instancia que nos dé una conexión para
la base de datos
8
}
Cuarto debemos crear una instancia que convierte una cadena de bytes en una
imagen jpg
9
try {
statement = connection.createStatement();
resultSet = statement.executeQuery("SELECT id_imagen,tipo, archivo
FROM imagen " );
while (resultSet.next())
{ //se crea un objeto CITA y se le van agregando los datos
imagen img = new imagen();
img.setId( resultSet.getInt("id_imagen") ) ;
img.setName( resultSet.getString("tipo") ) ;
try { //antes de agregar el campo imagen, realiza la conversion de bytes
a JPG
img.setArchivo(ConvertirImagen(resultSet.getBytes("archivo")));
} catch (IOException ex) {
System.err.println(ex.getMessage());
}
//por ultimo añade el objeto imagen:img al DefaultListModel
dml.addElement(img);
}
}
catch (SQLException ex) {
System.err.println(ex.getMessage());
}
return dml;
}
CONCLUCIONES
DISCUSIÓN:
El ejecutor ExecuteService nos permite ejecutar las tareas que sean
asignadas
Se debe tener en cuenta que la conexión a la base de datos también se
encuentra manejada con una librería.
9. EVALUACIÓN DEL APRENDIZAJE:
10
en la fundamentación, diseño y el procesamiento y la lógica
desarrollo de programas de la ejecución.
computacionales.
*Alto(A), Medio (M), Bajo (B)
12.- BIBLIOGRAFÍA:
11