CURSO DE JAVA
Contenido
PROGRAMAS A UTILIZAR
- Netbeans Es un IDE(Integrated Development Environment->Entorno de Desarrollo Integrado), es un programa o entorno el cual nos permite crear o desarrollar aplicaciones(Web, Escritorio, Móviles, etc).
- Jdk
Java Development Kit(Kit de Desarrollo de Java) son herramientas para poder
crear
aplicaciones en java.
*JRE (Java Runtime Environment) -> Entorno de Ejecución de Java. Nos permite la ejecución de nuestras aplicaciones java - Mysql (My Structured Query Language->Lenguaje de Consulta) es un gestor de base de datos, lo cual nos permite almacenar y administrar información.
CONCEPTOS BÁSICOS
* Java es un lenguaje de programacion orientado a objetos que nos permite crear
aplicaciones
tanto para web o escritorio.
¿QUE ES POO (Programacion Orientada a Objetos)?
*Es una PARADIGMA DE PROGRAMACION, es decir un modelo o un estilo de programación que nos da unas guías sobre cómo trabajar con él.
*Es una PARADIGMA DE PROGRAMACION, es decir un modelo o un estilo de programación que nos da unas guías sobre cómo trabajar con él.
*Se dice que JAVA POO porque practicamente en la programacion todo es un
OBJETO(toda
cosa de
nuestro al rededor). En java todo objeto se denomina CLASE y toda clase tiene solo
dos
cosas(ATRIBUTOS Y METODOS)
*ATRIBUTOS(son las varibles donde se almacenan las caracteristicas o
propiedades
de
nuestra clase
u objeto)
*METODOS(son las funciones o acciones que realizar nuestra clase u
objeto)
CREAR NUEVO PROYECTO
SOUT - JOP - SCANNER
/* SOUT */
System.out.println("Hola Mundo");
/* JOP */
JOptionPane.showInputDialog("ingrese su nombre");
JOptionPane.showMessageDialog(null, "Hola Mundo");
/* SCANNER */
Scanner co=new Scanner(System.in);
String mensaje=co.next();
//String mensaje=co.nextLine(); // para textos separados con espacio
System.out.println(mensaje);
VARIABLES
Las variables son un espacio en memoria y que pueden almacenar un valor.
int a = 10; /* ENTEROS */
String b = "Isai"; /* CADENA */
Float(clase)
float c = 10.50; /* DECIMALES CORTOS */
Double(clase)
double d = 10.500000000; /* DECIMALES LARGOS */
char e = '*'; /* CARACTERES */
boolean f = true; /* VERDADERO O FALSO */
ARREGLOS
Los arreglos tambien es un tipo de dato, puede almacenar un conjunto de datos.
int numero[]=new int[10]
numero[0]=20
/* ASIGNANDO VALORES */
for (int i = 0; i < 10; i++) {
numero[i]=Integer.parseInt(JOptionPane.showInputDialog("Ingrese su
edad"));
}
/* IMPRIMIENDO VALORES */
for (int i = 0; i < 10; i++) {
System.out.println(numero[i]);
}
for (int items : numero) {
System.out.println(items);
}
COMENTARIOS
Los comentarios son lineas de codigos que no son interpratadas en la ejecución.
// Comentarios de una sola linea
/*
Comentarios de varios bloques de linea
*/
CONDICIONALES
if (condicion) {
...instrucciones...
} else {
...instrucciones...
}
ESTRUCTURAS DE CONTROL
switch (sem) {
case 1: ...instruccion1...
break;
case 2: ...instruccion2...
break;
default: ...instruccion3...
break;
}
BUCLES Y CICLOS
for (int i = 0; i <= 10; i++) {
...instrucciones...
}
for (int items : numero) {
...instrucciones...
}
while (condicion){
...instrucciones...
}
do{
...instrucciones...
}
}while(condicion)
CASTING O CONVERSIONES DE TIPOS DE DATO
/* STRING-INTEGER */
Integer entero = Integer.valueOf(cadena);
int entero = Integer.parseInt(cadena);
/* INTEGER-STRING */
String cadena = Integer.toString(entero);
String cadena = String.valueOf(entero);
/* CHAR-STRING */
String cadena = Character.toString(char);
/* STRING-CHAR */
char caracter = cadena.charAt(0); //Solo primer caracter
/* STRING-DOUBLE */
double doble = Double.parseDouble(cadena);
/* DOUBLE-STRING */
String cadena = String.valueOf(doble);
/* STRING-FLOAT */
float flotante = Float.parseFloat(cadena);
/* FLOAT-STRING */
String cadena = Float.toString(flotante);
/* STRING-BOOLEAN */
Boolean boolean = Boolean.valueOf(cadena);
boolean boolean = Boolean.parseBoolean(cadena);
/* BOOLEAN-STRING */
String cadena = String.valueOf(b);
String cadena = Boolean.toString(b);
/* DOUBLE-INT */
double precio = 10.5;
int a = (int) precio;
/* FLOAT-INT */
float precio = 10.5f;
int a = (int) precio;
CLASES
*Las clases solo contienen atributos y metodos. Solo las clases principales son las que se pueden ejecutar, mas no lo demás
*Para utilizar una clase normal en una clase principal debe hacer la importacion.
INSTANCIAS
*Para instanciar una clase, primero se debe importar.
import cursosjava.Persona;
Persona pe=new Persona();
MÉTODOS
MÉTODOS SIN PARAMETROS
public int suma(){
return a+b;
}
pe.suma();
MÉTODOS CON PARAMETROS
public int suma(int a, int b){
return a+b;
}
pe.suma(10,50);
TRY CATCH
*Los Try Catch se utilizan para poder prevenir los errores.*Para mayoria de los casos el try catch se utiliza:
- Para recibir información de formularios
- Para realizaciones acciones hacia la BD
FRAMES
*Los frames es un area o marco de trabajo de java, que nos permite diseñar nuestra interfaz*Los frames esta compuesto por dos áreas(CODIGO-DISEÑO). En el área de código es la parte donde se programa la LÓGICA de nuestra aplicación. El area de diseño es la parte donde se muestra la interfaz de nuestro aplicación
*getText() nos permite obtener el valor de nuestro input.
*setText() nos permite colocar el valor a un componente(LABEL-BUTTON-INPUT-ETC).
String codigo = txtcodigo.getText();
lblres.setText("Hola Mundo");
COMPONENTES FRAMES
/* COMBO BOX */
-> Cambiar la propiedad MODEL
cbnum.getSelectedIndex() //recibe la posicion
cbnum.getSelectedItem() //recibe el valor
/* CHECK BOX */
if (mujer.isSelected()) {
txtnombre.setText(mujer.getText());
}
/* RADIO BUTTON */
-> Arrastrar el componente BUTTON GROUP
-> Cambiar la propiedad BUTTON GROUP
if (f.isSelected()) {
txtnombre.setText(f.getText());
}
/* POPUP MENU */
-> Arrastrar el componente popup menu
-> Ir a las propiedades del componente que contiene el popup menu
-> Cambiar la propiedad componentPopupMenu
-> Ir a navigator->other components->JPopupMenu->Agregar->menu-item
-> Cambiar la propiedad text del menu-item
int filas=tabla1.getSelectedRow();
if (filas>=0) {
txtcod.setText(tabla1.getValueAt(filas, 0).toString());
txtnom.setText(tabla1.getValueAt(filas, 1).toString());
txtcod.setEditable(false);
btneliminar.setEnabled(false);
btnregistrar.setEnabled(false);
}
/* J-CALENDAR */
Descargar el .JAR
-> Click derecho en la paleta de componentes
-> Palette Manager
-> Add from Jar
-> Selecciona el J-Calendar
-> Selecciona todos los componentes
-> Selecciona AWT
-> Finalizar
-> Arrastrar el componente JDateChooser
int anio = calendario.getCalendar().get(Calendar.YEAR);
int mes = calendario.getCalendar().get(Calendar.MONTH)+1;
int dia = calendario.getCalendar().get(Calendar.DAY_OF_MONTH);
fecha.setText(dia + "/" + mes + "/" + anio);
/* EJECUTAR EN PANTALLA COMPLETA */
public Index() {
initComponents();
this.setExtendedState(MAXIMIZED_BOTH);
}
/* PONER COLOR EN JFRAME Y JPANEL */
public Index() {
//Color JFrame
this.getContentPane().setBackground(new Color(0, 189, 255));
//Color JPanel
jPanel1.setBackground(new Color(100, 55, 200));
}
/* HORA ACTUAL */
LocalDateTime locaDate = LocalDateTime.now();
int hours = locaDate.getHour();
int minutes = locaDate.getMinute();
int seconds = locaDate.getSecond();
txthora.setText(hours + ":" + minutes + ":" + seconds);
/* PONER PLACEHOLDER EN JTEXTFIELD */
Descargar el archivo
Segunda opcion de descarga
- Copia el archivo "TextPrompt.java" dentro de formularios
- Reinicia netbeans
- OJO:si en caso no se puede instanciar entrar y copiar todo el codigo en una clase nueva o pegar el archivo en otra carpeta fuera de formularios
public Login() {
TextPrompt TextoPlaceholder=new TextPrompt("Usuario", txtusuario);
}
/* COMO CENTRAR UN JFRAME */
public Login() {
setLocationRelativeTo(null);
}
/* COMO BLOQUEAR MAXIMIZAR Y MINIMIZAR EN JFRAME */
public Login() {
this.setResizable(false);
}
/* COMO PONER TITULO EN JFRAME */
public Login() {
this.setTitle("Inicio de sesion");
}
/* EVENTO AL PRESIONAR ENTER */
//ejecutar un boton al presionar enter en input
if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
btnentrar.doClick();
}
/* CERRAR Y ABRIR UN JFRAME FORM */
this.dispose();//cerramos el frame actual
Inicio ini=new Inicio();//instanciamos el nuevo frame
ini.setVisible(true);//abrimos el frame nuevo
/* COMO SABER SI UN ARRAYLIST ESTA VACIO O NO */
tabla.isEmpty()
/* EJECUTAR JFRAME EN PANTALLA COMPLETA */
public Login() {
this.setExtendedState(MAXIMIZED_BOTH);
}
/* PASOS PARA COMPARTIR DATOS DE UN FRAME A OTRO */
- Click derecho en el componente
- optimizar codigo
- poner acceso PUBLIC y STATIC
//EJEMPLO
Inicio ini = new Inicio();//instanciamos el nuevo frame
ini.txtnombre.setText("valor compartido"); //este valor viene de un frame diferente
/* CURSOR POINTER EN JLABEL */
lblventas.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
/* ENCRIPTAR MD5 */
public static String md5(String clear) throws Exception {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] b = md.digest(clear.getBytes());
int size = b.length;
StringBuffer h = new StringBuffer(size);
//algoritmo y arreglo md5
for (int i = 0; i < size; i++) {
int u = b[i] & 255;
if (u < 16) {
h.append("0" + Integer.toHexString(u));
} else {
h.append(Integer.toHexString(u));
}
}
return h.toString();
}
//COMO LLAMAR AL METODO
String password = "";
try {
password = md5(txtpassword.getText());
} catch (Exception e) {
}
/* NUEVO AGREGADO DESDE LAPTOP */
/* AGREGAR UN JBUTTON */
JButton btn1=new JButton("AGREGAR");
/* CAMBIAR COLOR DE JBUTTON */
btn1.setBackground(Color.green);
/* CAMBIAR COLOR DE ENCABEZADO DE UN JTABLE */
UIManager.put("nimbusBlueGrey", new Color(32,136,203));
tabla1.setModel(modelo);
/* CAMBIAR ALTO DE ENCABEZADO DE UN JTABLE */
tabla1.getTableHeader().setPreferredSize(new java.awt.Dimension(0,30));
/* COMO AGREGAR ELEMENTOS(JLABEL,JBUTTON) A UNA JTABLE */
- Primero crear una clase para el renderizado "Render.java"
//EN LA CLASE "Render.java"
public class RenderTablaBuscarProd extends DefaultTableCellRenderer{
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
if (value instanceof JButton) {
JButton btn=(JButton)value;
return btn;
}
return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); //To change body of generated methods, choose Tools | Templates.
}
}
//METODO PARA MOSTRAR LA TABLA
public void mostrarProd() {
Conexion co = new Conexion();
ArrayList bu = co.buscarProducto(txtbuscarProd.getText());
DefaultTableModel tabla = new DefaultTableModel() {
// esto es para bloquear la edicion del boton
public boolean isCellEditable(int row, int column) {
return false;
}
/*otra forma de bloquear la columna del boton
public boolean isCellEditable(int row, int column) {
if (column == 5) {
return false;
}
return super.isCellEditable(row, column);
}*/
};
//creando botones
JButton btn1 = new JButton("AGREGAR");
btn1.setName("btnagregar");
tabla.addColumn("NOMBRE");
tabla.addColumn("DESCRIPCION");
tabla.addColumn("CANTIDAD");
tabla.addColumn("PRECIO");
tabla.addColumn(" ");
tabla1.setModel(tabla);
for (BuscarProductoGetSet buscar : bu) {
tabla.addRow(new Object[]{buscar.getNombre(), buscar.getDescripcion(), buscar.getStock(), buscar.getPrecio(), btn1});
}
tabla1.setDefaultRenderer(Object.class, new RenderTablaBuscarProd());
tabla1.setModel(tabla);
//alto de las filas de las tablas
tabla1.setRowHeight(30);
TableColumn columna = new TableColumn();
columna.setPreferredWidth(70);
}
//PARA EL EVENTO
int column = tabla1.getColumnModel().getColumnIndexAtX(evt.getX());
int row = evt.getY() / tabla1.getRowHeight();
if (row < tabla1.getRowCount() && row >= 0 && column < tabla1.getColumnCount() && column >= 0) {
Object value = tabla1.getValueAt(row, column);
if (value instanceof JButton) {
((JButton) value).doClick();
JButton boton = (JButton) value;
if (boton.getName().equals("btnagregar")) {
System.out.println("Click en el boton agregar");
//EVENTOS MODIFICAR
}
}
}
/* OBTENER POSICION DE FILA Y COLUMNA EN UN JTABLE */
//la fila y columna empieza de CERO
int col = tabla2.getColumnModel().getColumnIndexAtX(evt.getX());
int fil = evt.getY() / tabla1.getRowHeight();
/* COMO TOMAR EL MISMO MODELO DE NUESTRO JTABLE */
DefaultTableModel modelo = (DefaultTableModel) tabla2.getModel();
/* AUTOFOCUS EN JTEXTFIELD */
txtbuscarProd.requestFocus();
/* FECHA ACTUAL EN JAVA */
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String fecha=dtf.format(LocalDateTime.now());
/* SUMAR PRECIO DE FILAS DE JTABLE */
double fi = 0;
double total = 0;
for (int i = 0; i < tabla2.getRowCount(); i++) {
fi = Double.parseDouble(tabla2.getValueAt(i, 5).toString());
total = total + fi;
}
txtmontoTotal.setText(String.valueOf(total));
totalPagar();
/* ABRIR JTABPANEL CON UN JBUTTON */
JTabbedPanel.setSelectedIndex(0);
/* COLOCAR VALORES DE UN TABLA AL HACER CLICK EN LA FILA */
int fila = tablaProducto.rowAtPoint(evt.getPoint());
txtidProd.setText(tablaProducto.getValueAt(fila, 0).toString());
txtnomProd.setText(tablaProducto.getValueAt(fila, 1).toString());
/* AGREGAR IMAGEN A UN JBUTTON */
JButton btn1 = new JButton("");
btn1.setIcon(new ImageIcon("src/img/plus.png"));
/* DESACTIVAR O DESHABILITAR UN BOTON */
boton.setEnabled(false);
/* DESACTIVAR O DESHABILITAR UNA PESTAÑA DE UN JTABBEDPANE */
panel.setEnabledAt(5, false);
/* COLOCAR FECHA ACTUAL EN JDATECHOOSER */
Calendar date = new GregorianCalendar();
Jfecha1.setCalendar(date);
Jfecha2.setCalendar(date);
/* COMO EJECUTAR CON X-LINT */
1. Ir derecho en el proyecto->propiedades->compiling
2. En el apartado "Additional Compiler Options" colocar -> "-Xlint:unchecked" //METODO 1
2. En el apartado "Additional Compiler Options" colocar -> "-Xlint:deprecation -Xlint:unchecked" //METODO 2
2. Listo
CONEXIÓN BD
- Tener los drivers
- Click derecho en Libraries
- Add Library
- Elegir el driver adecuado para cada GESTOR DE BD que estemos utilizando
- Nos dirigimos a Services.
- Click derecho en databases
- New Connection
- Configurar los pasos. OJO: tenga cuidado en configurar el NOMBRE, USUARIO, CLAVE de acceso a nuestra BD
- Test Connection
- Click derecho y CONECTAR en MYSQL SERVER at localhost:
- Seleccionar tu BD
- Click derecho conectar
- Se te creará un archivo que debes configurarlo
- Click derecho propiedades
- Ahi encontrarás información necesaria
- Crear una clase para la CONEXIÓN
- Importar los siguientes clases
-
import java.sql.*;
package formularios;
import java.sql.*;
public class Conexion {
Connection cn;
PreparedStatement ps;
CallableStatement cst;
ResultSet rs;
public Conexion() {
try {
Class.forName("com.mysql.jdbc.Driver");
cn = DriverManager.getConnection("jdbc:mysql://localhost:3309/practica6", "root", "root");
System.out.println("CONECTADO BD");
} catch (Exception e) {
System.out.println("ERROR CONEXION BD");
}
}
}
METODOS Y CONSULTAS SQL
*En java veremos 4 clases muy importantes que nos brinda a la hora de trabajar con una BASE DE DATOS.
Connection cn /* NOS PERMITE REALIZAR LA CONEXION */
PreparedStatement ps /* NOS PERMITE REALIZAR CONSULTAS A LA BD */
CallableStatement cst /* NOS PERMITE LLAMAR UN PROCEDIMIENTO ALMACENADO DE NUESTRA BD */
ResultSet rs /* NOS PERMITE ALMACENAR DATOS QUE SON OBTENIDOS DE LA BD */
METODOS CON PreparedStatement
public int registrarProducto(String nombre, double pre) {
int res = 0;
try {
ps = cn.prepareStatement("insert into producto(nombre,precio)values(?,?)");
ps.setString(1, nombre);
ps.setDouble(2, pre);
res = ps.executeUpdate();
System.out.println("Registrado correctamente");
} catch (Exception e) {
System.out.println("error al registrar " + e);
}
return res;
}
METODOS CON CallableStatement
public int registrarProducto(String nombre, double pre) {
int res = 0;
try {
cst=cn.prepareCall("{call reproducto(?,?)}");
cst.setString(1, nombre);
cst.setDouble(2, pre);
res=cst.executeUpdate();
} catch (Exception e) {
System.out.println("error al registrar " + e);
}
return res;
}
ResultSet
public ArrayList<MetodoGetSet> coautor(){
ArrayList<MetodoGetSet> res=new ArrayList<MetodoGetSet>();
try {
cst=cn.prepareCall("{call coautor()}");
rs=cst.executeQuery();
while (rs.next()) {
MetodoGetSet me=new MetodoGetSet();
me.setCod_autor(rs.getString(1));
me.setNom_autor(rs.getString(2));
me.setNacion_autor(rs.getString(3));
res.add(me);
}
} catch (Exception e) {
}
return res;
}
LISTAR DATOS EN TABLA
public class Autor extends javax.swing.JFrame {
public Autor() {
initComponents();
mostrartabla();
}
public void mostrartabla(){
Registro re=new Registro();
DefaultTableModel modelo=new DefaultTableModel();
modelo.addColumn("CODIGO");
modelo.addColumn("NOMBRE");
modelo.addColumn("NACIONALIDAD");
tabla1.setModel(modelo);
ArrayList<MetodoGetSet> tabla=re.coautor();
String datos[]=new String[3];
for (MetodoGetSet m : tabla) {
datos[0]=m.getCod_autor();
datos[1]=m.getNom_autor();
datos[2]=m.getNacion_autor();
modelo.addRow(datos);
}
tabla1.setModel(modelo);
}
}
REPORTES CON JASPER-REPORT
- Descargar las librerias (IReport)
- Agregar las librerias a Netbeans
- Click tools->plugins->downloader->add plugins
- Crear una carpeta en SRC llamado "REPORTES"
- Dentro de la carpeta crear una clase de tipo Report
- Nuevo->otros->Report->Empty report
- Conectar Mysql con IReport
- Al instalar este plugin aparece una ventana principal de IReport
- Paso1: Seleccionar JDBC connection
- Paso2: Seguie con este paso
- Paso siguiente
- Click en el buscador de netbeans
- Buscar "report inspector"
- Descargar
las librerias (otros)
- Click derecho en library->agregar archivo JAR
- Seleccionar todas los .JAR
- CRER UNA NUEVA CONEXION CON MYSQL
public Connection getConexion() { try { Class.forName("com.mysql.jdbc.Driver"); cn = DriverManager.getConnection("jdbc:mysql://localhost:3309/sistema_venta_java", "root", "root"); System.out.println("Base de datos conectada"); } catch (Exception e) { System.out.println("ERROR AL CONECTAR BD"); } return cn; }
- METODO PARA IMPRIMIR
try { Conexion co = new Conexion(); Connection cnn = co.getConexion(); JasperReport reporte = null; String path = "src\\reportes\\Prueba.jasper"; reporte = (JasperReport) JRLoader.loadObject(getClass().getResource("/reportes/Prueba.jasper")); JasperPrint jprint = JasperFillManager.fillReport(reporte, null, cnn); JasperViewer view = new JasperViewer(jprint, false); view.setDefaultCloseOperation(DISPOSE_ON_CLOSE); view.setVisible(true); } catch (JRException ex) { Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex); }
- METODO PARA IMPRIMIR CON PARAMETROS()
try { Conexion co = new Conexion(); Connection cnn = co.getConexion(); JasperReport reporte = null; String path = "src\\reportes\\Prueba.jasper"; //PARAMETROS Map<String, Object> parametro = new HashMap<String, Object>(); parametro.put("id_producto", 16); reporte = (JasperReport) JRLoader.loadObject(getClass().getResource("/reportes/Prueba.jasper")); JasperPrint jprint = JasperFillManager.fillReport(reporte, parametro, cnn); JasperViewer view = new JasperViewer(jprint, false); view.setDefaultCloseOperation(DISPOSE_ON_CLOSE); view.setVisible(true); } catch (JRException ex) { Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex); }
CREAR INSTALADOR DE PROYECTO JAVA
- Programas a utilizar
CONCEPTO
SINTAXIS
<%
..............
%>
IMPORT
<%@
page import="controlador.Datos_empresa"
%>
USE-BEANS
<jsp:useBean id="fi" scope="page" class="controlador.Filtro" />
IMPRIMIR EN PANTALLA
<%= "Hola mundo" %>
<%= "<h1>Hola mundo</h1>" %>
REQUEST
<%
String usuario = request.getParameter("txtusuario");
Part foto = request.getPart("txtfoto"); /* PARA RECIBIR ARCHIVOS */
%>
VALIDACIONES
<%
if (usuario != null && clave != null) {
..............
}
%>
TRY CATCH
*Los Try Catch se utilizan para poder prevenir los errores.*Para mayoria de los casos el try catch se utiliza:
- Para recibir información de formularios
- Para realizaciones acciones hacia la BD
<%
try {
String usuario = request.getParameter("txtusuario");
Part foto = request.getPart("txtfoto"); /* PARA RECIBIR ARCHIVOS */
} catch (Exception e) {
}
%>
JSP
*JSP es similar a PHP( Dentro de un JSP se puede incluir otros elementos como HTML, CSS y JAVASCRIPT).
*Para desplegar y correr JavaServer Pages, se requiere un servidor web compatible con contenedores servlet como Glassfish, Apache Tomcat o Jetty.
JAVA BEANS
CONEXIÓN BD
<!-- primero agrega las dependencias de MySQL en "Project files/pom.xml" -->
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.30</version> <!-- cuidado: primero verifica que version de Mysql usas en "Mysql Server Wizard" -->
</dependency>
</dependencies>
Connection cn;
PreparedStatement ps;
CallableStatement cst;
ResultSet rs;
try {
Class.forName("com.mysql.jdbc.Driver");
cn = DriverManager.getConnection("jdbc:mysql://localhost:3309/blog", "root", "root");
System.out.println("Conectado BD");
} catch (Exception e) {
System.out.println("Error al a¿conectar BD");
}
JAVA BEANS
Como usar un JavaBeans desde JSP
<body>
<h1>Modificar valores</h1>
<!-- Usar una clase java carpeta/nomClase alcance(page-request-session-aplication)-->
<jsp:useBean id="rectangulo" class="beans.Rectangulo" scope="session" />
<%
rectangulo.setBase(10);
rectangulo.setAltura(5);
%>
<li><%= rectangulo.getBase()%></li>
<li><%= rectangulo.getAltura()%></li>
<li><%= rectangulo.getArea()%></li>
</body>