Sunteți pe pagina 1din 8

CONEXIN DE JAVA CON SQL SERVER CON JDBC

Procedimiento
Los pasos necesarios para crear y manejar la conexin a una base de datos
JDBC son los siguientes:
Cargar un driver
Utilizando el driver puente JDBC-ODBC, se utiliza el mtodo esttico forName
del objeto Class (esto crea un entorno para la conexin).
Por ejemplo la variable DRIVER definida como tipo String se le asigna la cadena
con la informacin del driver puente JDBC-ODBC y utilizar solo el nombre de la
variable en forName.
DRIVER= sun.jdbc.odbc.JdbcOdbcDriver
Class.forName (DRIVER)
Crear la conexin
La conexin a la base de datos se establece creando un objeto Connection al
que se le asigna la llamada al mtodo getConnection del objeto DriverManager
el cual busca en los drivers registrados hasta encontrar un driver especfico
para crear la conexin al URL requerido.
URL=jdbc: subprotocolo: subname
Donde protocolo es el mtodo de acceso usado por JDBC, subname es un
nombre que tiene significado para el subprotocolo que est siendo usado, en
este caso est siendo usado el puente JDBC-ODBC y el subprotocolo es ODBC.
Por ejemplo

URL= jdbc: odbc: agendaJava;


Connecction con = DriverManager.getConnection (URL,,);

Crear un Statement
Una vez hecha la conexin a la base se debe ejecutar una sentencia SQL para
poder interactuar con ella, para lo que se requiere crear un objeto Statement
que maneje la sentencia SQL. A este objeto se le asigna una llamada al mtodo
createStatement de la clase Connection.

import java.sql.Connection;
import java.sql.DriverManager;
public class Manager {
private String driver;
private String url;
private String error;

Connection conn=null;
public Manager ()
{
driver ="sun.jdbc.odbc.JdbcOdbcDriver";
url ="jdbc:odbc:Ejemplo";
error= "";
}
public String getDriver() {
return driver;
}
public void setDriver(String driver) {
this.driver = driver;
}
public String getError() {
return error;
}
public void setError(String error) {
this.error = error;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;

}
public Connection conexion ()
{
try{
Class.forName (driver).newInstance();
conn= DriverManager.getConnection(url);
if (conn!=null){
System.out.println("Coneccin a base de datos OK");
}
return conn;
} catch (Exception e)
{
error=e.getMessage ();
System.out.print (error);
}
return null;
}

}
CREANDO TABLAS EN SQL SERVER
Creando Tabla Empleado
Use Ejemplo
go
Create table Empleado
(
idEmpleado int Primary Key,
Nombre varchar(20),
Apellido varchar(20),
Salario float,
idDepartamento int
)
go

Creando Tabla Departamento


Use Ejemplo
go
Create table Departamento
(
idDepartamento int Primary Key,
Nombre varchar(20),
)
Go

CREANDO PROCEDIMIENTOS ALMACENADOS PARA LA CONSULTA


Seleccionamos a todos los empleados
Use Ejemplo
go
create proc TEmpleados
as
begin
select * from Empleado order by Apellido ASC
end
go

*Luego lo llamamos desde Java con este metodo


public Vector todoslosdatos (){
Vector lista=new Vector ();
try
{
String sql="execute TEmpleados";
Manager mg=new Manager ();
Connection con=mg.conexion ();
Statement st=con.createStatement ();
ResultSet rs=st.executeQuery (sql);
While (rs.next ())
{
lista.add(new
Empleado(rs.getInt("idEmpleado"),rs.getString("Nombre"),rs.getString("Apellido
"),rs.getFloat("Salario"),rs.getInt("idDepartamento")));
}
con.close ();
rs.close ();
st.close ();
} catch (Exception e)
{
System.out.print (e.getMessage ());
}
return lista;
}

*El resultado es:

Seleccionamos a los Empleados por Departamento


Use Ejemplo
go
create proc EmpDepart @Dep varchar(20)
as
begin
select e.Nombre as Nombre,e.Apellido as Ape,e.Salario as
Sal,d.Nombre as Depa from Empleado e join Departamento d on
e.idDepartamento=d.idDepartamento where d.Nombre=@Dep
end
go

*Luego lo llamamos desde Java con este metodo

public Vector todoslosdatos (){


Vector lista=new Vector ();
try
{
String sql="execute EmpDepart @Dep='Almacen' ";
Manager mg=new Manager();
Connection con=mg.conexion ();
Statement st=con.createStatement ();
ResultSet rs=st.executeQuery(sql);
While (rs.next ())
{
lista.add(new
EmpDe(rs.getString("Nombre"),rs.getString("Ape"),rs.getFloat("Sal"),rs.getStrin
g("Depa")));
}
con.close ();
rs.close ();
st.close ();
} catch (Exception e)
{
System.out.print (e.getMessage ());
}
return lista;
}

*El resultado es:

S-ar putea să vă placă și