• Sábado 14 de Diciembre de 2019, 08:32

Autor Tema:  Conexion de Netbeans a SQL Server 2016  (Leído 2464 veces)

hackerdam

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Conexion de Netbeans a SQL Server 2016
« en: Jueves 20 de Octubre de 2016, 07:22 »
0
Que tal.
Estoy tratando de hacer una conexión desde NetBeans 8.1 a Sql Server 2016.
Sin embargo, me sale error y no logra conectarse.
Segui los pasos del siguiente tutorial: https://www.youtube.com/watch?v=1A4p-4EZ5X0
Les paso mi código a continuación:

CLASE ConectorSqlServer
Código: [Seleccionar]

import java.sql.*;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

public class ConectorSqlServer {
    Connection con;
    CallableStatement cst;
    String nombre_BD;
    String usuario="usuario";
    String pass="Contrasena";
    public ConectorSqlServer(String Nombre_Base_Datos) {
        nombre_BD=Nombre_Base_Datos;
        try{
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            con=DriverManager.getConnection("jdbc:sqlserver://Servidor\\SQLEXPRESS:1433;databasename="+nombre_BD+";"+"user="+usuario+";password="+pass);
            System.out.println("Existosa Conexion a la Base de Datos");
        }catch (ClassNotFoundException | SQLException e){
                  System.out.println("Error al Conectar con la Base de Datos" + e);
            JOptionPane.showMessageDialog(null,"Error al Acceder a la Base de Datos");
        }
    }
    public Connection getCon() {
        return con;
    }
    public CallableStatement getCst() {
        return cst;
    }
    public int Conectar(){   // retorna -1 si hubo un error
        try{
             Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            con=DriverManager.getConnection("jdbc:sqlserver://C0BSGCHL\\SQLEXPRESS:1433;databasename="+nombre_BD+";"+"user="+usuario+";password="+pass);
            return 0;
        }catch (ClassNotFoundException | SQLException e){
            return -1;
        }
    }
    public int Desconectar(){   // retorna -1 si hubo un error
        try {
            con.close();
            return 0;
        } catch (SQLException ex) {
            return -1;
        }
    }
   
    /// EJECUTORES /////
    public int Insertar(String Tabla,String argumentos[]){  //devuelve -1 si hubo error y si un argumento es char o varchar debe ir entre comilla simple ej: "'hola'"
    //en caso de entero se debe mandar v[n]=String.valueOf(entero);
    // si es un String el que se va a guardar v[n]="String";
    // si es fecha el formato es "'año/dia/mes'" ej: v[n]="'2013/27/2'";
        String sql="insert into "+Tabla+" values(";
        if(argumentos!=null){
           if(argumentos.length>0){
            sql=sql+argumentos[0];   
            for (int i = 1; i < argumentos.length; i++) {
                sql=sql+","+argumentos[i];
               
            }
            sql=sql+")";
            if(Conectar()==0){
                    try {
                       Statement stm = con.createStatement();
                       stm.execute(sql);
                       if(Desconectar()==0){
                           return 0;
                       }
                    } catch (Exception e) {
                        return -1;
                    }
            }
           }
        }
           return -1;
    }
    public int Modificar(String Tabla,String Campo[],String valores[],String condicion){//devuelve -1 si hubo error y si un argumento es char o varchar debe ir entre comilla simple ej: "'hola'"
        String sql="update "+Tabla+" set ";
        if(condicion==null){
            condicion="";
        }else{
            if(!"".equals(condicion)){
                condicion=" where "+condicion;
            }
        }
        if(Campo!=null&&valores!=null){
           if(Campo.length>0&&valores.length==Campo.length){
            sql=sql+Campo[0]+"="+valores[0];   
            for (int i = 1; i <Campo.length; i++) {
                sql=sql+","+Campo[i]+"="+valores[i];
            }
            sql=sql+condicion;
            if(Conectar()==0){
                    try {
                       Statement stm = con.createStatement();
                       stm.execute(sql);
                       if(Desconectar()==0){
                           return 0;
                       }
                    } catch (Exception e) {
                        return -1;
                    }
            }
           }
        }
           return -1;
    }
   
    public int  Ejecutar_Sentencia(String sql){
      if(Conectar()==0){
        try {
             Statement stm = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                    ResultSet.CONCUR_READ_ONLY);
            ResultSet rs = null;
            stm.execute(sql);
            return 0;
         } catch (Exception e) {
             System.out.println("Error al Ejecutar Sentencia: "+sql);
             return -1;
         }
      }
      return -1;
    }
    public Object[] Consulta_simple(String sql){
        Object v[]=new Object[0];
      if(Conectar()==0){
        try {
             Statement stm = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                    ResultSet.CONCUR_READ_ONLY);
            ResultSet rs = null;
            rs = stm.executeQuery(sql);
            String a="";
            while(rs.next()){
                   v= agrandar_vec_object(v,rs.getObject(1));
            }
            if(Desconectar()==0){
                if(v.length!=0){
                    return v;
                }else{
                    return null;
                }
            }
        } catch (Exception e) {
            return null;
        }
      }
        return null;
    }
    public Object[] Consulta_Ayuda(String Tabla,String Campo,String condicion){
        if(condicion==null){
            condicion="";
        }else{
            if(!"".equals(condicion)){
                condicion=" where "+condicion;
            }
        }
        String sql="select "+Campo+" from "+Tabla+condicion;
        Object v[]=new Object[0];
      if(Conectar()==0){
        try {
             Statement stm = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                    ResultSet.CONCUR_READ_ONLY);
            ResultSet rs = null;
            rs = stm.executeQuery(sql);
            String a="";
            while(rs.next()){
                   v= agrandar_vec_object(v,rs.getObject(1));
            }
            if(Desconectar()==0){
                  return v;
            }
        } catch (Exception e) {
            return null;
        }
      }
        return null;
    }
    public DefaultTableModel Consulta_Tabla_Ayuda(String Tabla,String Campo[],String condicion){
        String sql="select ";
        if(condicion==null){
            condicion="";
        }else{
            if(!"".equals(condicion)){
                condicion=" where "+condicion;
            }
        }
        if(Campo!=null){   
            if(Campo.length>0){
                sql=sql+Campo[0];
                for (int i = 1; i < Campo.length; i++) {
                    sql=sql+","+Campo[i];
                }
                sql=sql+" from "+Tabla+condicion;
                if(Conectar()==0){
                    try {
                        Statement stm = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                        ResultSet.CONCUR_READ_ONLY);
                        ResultSet rs = null;
                        rs = stm.executeQuery(sql);
                        DefaultTableModel modelo=new DefaultTableModel();
                        modelo=Imprimir(rs,modelo);
                        if(Desconectar()==0){
                            return modelo;
                        }
                    } catch (Exception e) {
                        return null;
                    }
                }
            }
        }
        return null;
    }
     public DefaultTableModel Consulta_Tabla_Simple(String sql){
                if(Conectar()==0){
                    try {
                        Statement stm = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                        ResultSet.CONCUR_READ_ONLY);
                        ResultSet rs = null;
                        rs = stm.executeQuery(sql);
                        DefaultTableModel modelo=new DefaultTableModel();
                        modelo=Imprimir(rs,modelo);
                        if(Desconectar()==0){
                            return modelo;
                        }
                    } catch (Exception e) {
                        return null;
                    }
                }
        return null;
    }
   
    private Object[] agrandar_vec_object(Object v[],Object ele){
        Object m[]=new Object[v.length+1];
        System.arraycopy(v, 0, m, 0, v.length);
        m[v.length]=ele;
        return m;
    }
    private DefaultTableModel Imprimir(ResultSet res,DefaultTableModel modelo){

        int i;
        try {
        ResultSetMetaData rmeta = res.getMetaData();
        int numColumnas= rmeta.getColumnCount();
            for(i=1;i<=numColumnas;i++)
            {
            modelo.addColumn(rmeta.getColumnName(i));
            }
            while (res.next())
            {
            Object [] fila = new Object[numColumnas];
                for (i=0;i<numColumnas;i++)
                fila[i] = res.getObject(i+1);
                modelo.addRow(fila);
            }
        } catch (Exception e) {
            return null;
        }
        return modelo;
    }
}

CLASE p2
Código: [Seleccionar]
package MetodosConexion;

public class p2 {
   
    public static void main(String args[]) {
        ConectorSqlServer c = new ConectorSqlServer("Base_Datos");
        c.Conectar();
   
    }
   
}

Cuando corro el archivo p2 me sale el siguiente error en la consola:

     
Código: [Seleccionar]
Error al Conectar con la Base de Datoscom.microsoft.sqlserver.jdbc.SQLServerException: No se pudo realizar la conexión TCP/IP al host C0BSGCHL, puerto 1433. Error: "Connection refused: connect. Verifique las propiedades de conexión, compruebe que hay una instancia de SQL Server ejecutándose en el host y aceptando las conexiones TCP/IP en el puerto y compruebe que no hay ningún firewall bloqueando las conexiones TCP en el puerto.".
¿Acaso este procedimiento no aplica para los servidores de SQLExpress?
¿Se usa un Driver diferente para SQL Server 2016?
Muchas gracias por su ayuda.