net beans

Upload: maf1001

Post on 14-Jan-2016

213 views

Category:

Documents


0 download

DESCRIPTION

netbeans

TRANSCRIPT

Conexion a SQL Server con NetBeans -ConsultasObjetivos:Crear una aplicacion en NetBeans conectado a una Base de Datos en SQL Server 2008,en el cual tenga los botones AGREGAR,ELIMINAR,NUEVO;

Requisitos:*Driversqljdbc4 (necesario para la conexion)*Programar en capas (opcional),pero nos sirve para que este mas ordenado nuestros codigos y sean reutilizables

Paso 1 :AbrirSQL Server Management Studio ,y nos conectamos con la autenticacion de SQL Server (la autenticacion de Windows dejemosla atras)

Paso 2 :Crear una Base de datos (nombre opcional)en mi caso la llamare "Sistema"

Paso 3:Crear la siguiente tabla:Usuarios-Usuario-Clave-Nivel

Paso 3:Abrir el IDE NetBeans y crear una aplicacion (en mi caso yo voy crearlo usando capas)CapaPrincipal = el main (para poder ejecutar nuestra aplicacion)CapaCliente=a todos nuestros formulariosCapaModelo=todas nuestras clasesCapaRecursos=imagenes,etc

Paso 4 :Nos ubicamos en la capa modelo y creamos una clase llamada "ConexBD" y colocamos el siguiente codigo

package modelo;

import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;

public class ConexBD { protected PreparedStatement ps; protected String bd; protected Connection cn; protected Statement st; protected String sql; protected ResultSet rs; protected final String url = "jdbc:sqlserver://localhost;databasename=";

public ConexBD(String bd){ this.bd=bd; try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); System.out.println("Driver Registrado"); cn=DriverManager.getConnection(url+bd,"sa","123"); System.out.println("Conexion Establecida"); st= cn.createStatement();

}catch(SQLException e1){ System.out.println("ERROR SQL:"+ e1.getMessage()); } catch(ClassNotFoundException e2){ System.out.println("ERROR DRIVER:"+ e2.getMessage()); } }

public String getBd() { return bd; }

public void setBd(String bd) { this.bd = bd; }

public Connection getCn() { return cn; }

public void setCn(Connection cn) { this.cn = cn; }

public Statement getSt() { return st; }

public void setSt(Statement st) { this.st = st; }

public String getSql() { return sql; }

public void setSql(String sql) { this.sql = sql; }

public ResultSet getRs() { return rs; }

public void setRs(ResultSet rs) { this.rs = rs; }}

Paso 5 :Creamos una clase en el mismo paquete llamada classusuario ,en esta clase pondremos todos nuestros atributos,crearemos nuestro constructor ,los SET y los GET

//ATRIBUTOS private String usuario; private String clave; private String nivel;

public classusuario(String usuario,String clave,String nivel){ this.usuario=usuario; this.clave=clave; this.nivel=nivel;

GET Y SETpublic String getUsuario(){ return usuario; } public void setUsuario(String usuario){ this.usuario=usuario; } public String getclave(){ return clave; } public void setclave(String clave){ this.clave=clave; } public String getnivel(){ return nivel; } public void setnivel(String nivel){ this.nivel=nivel; }

Paso 6:Creamos nuestro formulario ,colocamos 3 TextField,3 botones (agregar,eliminar,nuevo) y una tabla (a la cual llamaremos tbldatos)

*Al textfield usuario le pondremos el nombre de txtusuario*Al textfield clave le pondremos el nombre de txtclave*Al textfield nivel le pondremos el nombre de txtnivel

Paso 6 :Nos ubicamos en el Public class del formulario y creamos una instancia de la clase "ConexBD" colocamos lo siguiente :

ConexBD u1;

en el InitComponents:u1=new ConexBD("Sistema");listado();

Paso7 :Como hacer para que al ejecutar mi aplicacion ,aparescan los registros ya guardados en mi tabla de mi formulario ?? Hacemos los siguiente ,creamos el metodo listadoprivate void listado(){ String sql="SELECT * FROM USUARIOS"; try { ResultSet rs=u1.getSt().executeQuery(sql); DefaultTableModel m1=(DefaultTableModel)tbldatos.getModel(); m1.setRowCount(0); while (rs.next()) { Object []fila={rs.getString(1),rs.getString(2),rs.getString(3)}; m1.addRow(fila); } } catch (SQLException ex) { Logger.getLogger(frmusuario.class.getName()).log(Level.SEVERE,null,ex); } }

Luego de hacer esto ,en el InitComponents llamamos el metodo listado,

Paso 8:Hacemos doble click en el boton agregar o guardar y codificamos los siguiente:String usuario;String clave;String nivel; usuario=txtusuario.getText(); clave=txtclave.getText(); nivel=txtnivel.getText();

classusuario usu=new classusuario(usuario,clave,nivel); //hacemos referencia a la clase usuario

String sql="INSERT INTO usuarios VALUES ('"+usu.getUsuario()+"','"+usu.getclave()+"','"+usu.getnivel()+"')";

try {

u1.getSt().executeUpdate(sql);listado(); //LLAMAMOS AL LISTADO PARA QUE SE ACTUALIZE LA TABLAJOptionPane.showMessageDialog(null,"Datos Guardados con Exito");} catch (SQLException e1){System.out.println("ERROR SQL:"+e1.getMessage());

Paso9 :

Nos ubicamos dentro del boton Eliminar y codificamos lo siguiente:

String cod =JOptionPane.showInputDialog(null, "Ingrese usuario a eliminar");

String sql="delete from usuarios where usuario='"+cod+"'";try{int resu=u1.getSt().executeUpdate(sql);listado(); //PARA QUE SE ACTUALIZE AUTOMATICAMENTE LOS REGISTROSif(resu==1){JOptionPane.showMessageDialog(null, "REGISTRO ELIMINADO");} else{ JOptionPane.showMessageDialog(null, "REGISTRO NO ELIMINADO");} } catch (SQLException e1) { JOptionPane.showMessageDialog(null, e1.getMessage()); }

Paso 10:Nos ubicamos dentro del boton nuevo o limpiar y codificamos lo siguiente: txtclave.setText(""); txtnivel.setText(""); txtusuario.setText(""); txtusuario.requestFocus();//esto es para que el punto de inicio sea el primer TextField

Paso 11 y ultimo :Ejecutamos nuestra aplicacion

OJO: recuerden agregar la libreria sqljdbc4

conexion de java con SQL server 2008

El controlador JDBC de Microsoft SQL Server es un controlador compatible con Java Database Connectivity (JDBC) 3.0 que proporciona un acceso confiable a los datos de las bases de datos de Microsoft SQL Server 2000, SQL Server 2005 y SQL Server 2008. El controlador JDBC puede tener acceso a muchas de las caractersticas nuevas de SQL Server 2005, incluidas la creacin de reflejo de la base de datos y tipos de datos XML, definidos por el usuario y de gran valor; asimismo, es compatible con el nuevo aislamiento de transaccin de instantnea. Adems, el controlador JDBC admite tambin el uso de la autenticacin integrada con SQL Server 2000, SQL Server 2005 y SQL Server 2008. Tenga en cuenta que la versin 2.0 del controlador JDBC de Microsoft SQL Server puede conectar con SQL Server 2008, pero no es compatible con los nuevos tipos de datos o con otras caractersticas que son nuevas de SQL Server 2008.Los temas de esta seccin proporcionan una introduccin general al controlador JDBC, incluidos los requisitos necesarios del sistema para usarlo, cmo se puede usar y dnde encontrar informacin adicional.

Los parametros y detalles de la conexion la encuenran en el sitio de microsoftaqu

Entonces el formato general de la URL de conexin es:1jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]

donde:

jdbc:sqlserver://(obligatorio) es el subprotocolo y es constante.

serverName(opcional) es la direccin del servidor con el que se establece la conexin. Puede ser un DNS o una direccin IP o bien un host local o 127.0.0.1 para el equipo local. Si no se especifica en la URL de conexin, es necesario especificar el nombre del servidor en la coleccin de propiedades.

instanceName(opcional) es la instancia para establecer la conexin con serverName. Si no se especifica, se establece una conexin con la instancia predeterminada.

portNumber(opcional) es el puerto para establecer la conexin con serverName. El valor predeterminado es 1433. Si usa el valor predeterminado, no es necesario especificar el puerto ni el signo ":" precedente en la direccin URL.

Una vez que tengan definida su cadena de conexin, se puede crear la conexin a la BD, en mi caso me descargue elMicrosoft SQL Server JDBC Driver 2.0liberado en marzo de este ao, pero bueno un ejemplo:01//carga del Driver

02Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

03//Se establece la conexion con el servidor de BD

04dbConnection = DriverManager.getConnection("jdbc:sqlserver://192.168.0.123:1433;databaseName=BD_Check;",

05"User1","12345");

06//Se crea el objeto statement

07Statement stm = dbConnection.createStatement();

08privatePreparedStatement enrollStmt;

09enrollStmt = dbConnection.prepareStatement("SELECT * FROM enroll");

10enrollStmt.executeQuery()

11//Posteriormente se cierra la conexin

12if(!enrollStmt.isClosed())

13enrollStmt.close();

14if(!dbConnection.isClosed())

15dbConnection.close();

Recomiendo lean la APIjava.sqlpara mas detalles.

NOTA:Los chicos de microsoft constantemente mueven las paginas del servidor, por lo que en algn momento el link podra estar roto.Publicadas porGaboHora17:10a)2 comentarios:Gabodijo...Solo comentar que existen otros Driver's JDBC para SQL Server, por ejemplo:*JTDSel cual es un driver de generacin 4 para MSSQL Server(6.5,7,2000 y 2005) el cual es GPL [http://jtds.sourceforge.net/]*Inet JDBCeste es de tipo comercial, es un driver generacin 4[http://www.inetsoftware.de/products/jdbc-driver]1:38 p.m.Maria Paz Ibar Sdijo...import java.sql.*;public class abrirConexion{

//Conectandose a SqlServer Usando JDBC y ODBC

public static void main(String[] args){

/*********************************** ** Usando una Coneccin tipo ODBC ** ***********************************/

// //Se entiende que usamos el Protocolo ODBC, que usaremos una ves que allamos agregado// //en la Directiva de ODBC de Windows la coneccin correspondiendo a la base de datos.// String url = "jdbc:odbc:Ejemplo";// String usuario = "NeoBones";// String password = "";// Statement stmt = null;// //Carga del driver// try {// Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");// }// catch(java.lang.ClassNotFoundException ex) {// System.err.print("Problemas al cargar el driver");// System.err.println(ex.getMessage());// }// try {// //Creando la conexion a la BD// Connection conexion = DriverManager.getConnection(url, usuario, password);// //Lanzando consultas// stmt = conexion.createStatement();// ResultSet cursor = stmt.executeQuery("SELECT * FROM persona");// }// catch(SQLException exc) {// System.err.println(exc.getMessage());// }

/*********************************** ** Usando una Coneccin Tipo JDBC ** ***********************************/

// La diferencia, es que cambiamos el Protocolo, en ves de ser ODBC es SqlServer. y agregamos//el nombre del Servidor de nuestra maquina, en mi caso es asi.String url = "jdbc:sqlserver://NEOBONES-NOTE\\SQLEXPRESS:1433;DatabaseName=Ejemplo;integratedSecurity=true;";//Si usaremos una conexion de tipo validacion llenar los compos y sacar el integratedSecurity del URL//String usuario = "NeoBones";//String password = "";Statement stmt = null;//Carga del drivertry {Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(java.lang.ClassNotFoundException ex) {System.err.print("Problemas al cargar el driver ");System.err.println(ex.getMessage());}try {//Creando la conexion a la BDConnection conexion = DriverManager.getConnection(url); // Conexion con validacion: getConnection(url,usuario,password);//Lanzando consultasstmt = conexion.createStatement();ResultSet cursor = stmt.executeQuery("SELECT * FROM persona");}catch(SQLException exc) {System.err.println(exc.getMessage());}}}

Aporte: NeoBones

Para establecer una conexin de base de datos SQL Server mediante NetBeans 7.0.1 a travs de JDBC habr que seguir los siguientes pasos en un sistema operativo Windows:1. Descargarse el driver oficial de Microsoft SQL Server JDBC desde el siguienteenlace.2. Una vez descargado, hay que establecer en las propiedades de nuestro proyecto el driver (Libraries> Compile) y pulsar sobre aadir JAR/Carpeta.

3. Buscar el archivo 'sqljdbc.jar' y seleccionarlo.En estos tres pasos habremos establecido nuestro driver sql server para nuestro proyecto, de manera que ya se podr establecer la conexin contra SQL Server a travs de JDBC:1. Importar la librera java.sql.*;2. Establecer la cadena de conexin y dems parmetros:JAVA:1.try{2. Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");3. StringconnectionUrl ="jdbc:sqlserver://localhost:1433;"+4. "databaseName=Northwind;user=sa;password=123456;";5. Connectioncon =DriverManager.getConnection(connectionUrl);6. }catch(SQLExceptione){7. System.out.println("SQL Exception: "+ e.toString());8. }catch(ClassNotFoundExceptioncE){9. System.out.println("Class Not Found Exception: "+ cE.toString());10. }

En ciertas ocasiones ser necesario establecer la conexin TCP/IP de nuestro servidor SQL Server, para ello seguir las indicaciones de estapgina(son para SQL Server 2005 pero aplicables).Webs de referencia: