duda con conexión sql java

Iniciado por shin_akuma, 12 Junio 2008, 01:21 AM

0 Miembros y 1 Visitante están viendo este tema.

shin_akuma

hola

miren tengo cierta dudas con un caodigo que me encontre para conectar sql con java el problema es que me arroja cierto error a la hora de compilarlo
El codigo:



package conexionsql;
import java.sql.*;
import java.sql.Connection;
import java.io.*;


public class conexion
{
   
    private java.sql.Connection  con = null;
    private final String url = "jdbc:microsoft:sqlserver://";
    private final String serverName= "localhost";
    private final String portNumber = "1433";
    private final String databaseName= "Mifex";
    private final String userName = "miki";
    private final String password = "123456";
    private final String selectMethod = "cursor";
   
     
   
     
     private String getConnectionUrl(){
         return url+serverName+":"+portNumber+";databaseName="+databaseName+";" + "selectMethod="+selectMethod+";";
     }
     
     private java.sql.Connection getConnection(){
         try
         {
             Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
             con = java.sql.DriverManager.getConnection(getConnectionUrl(),userName,password);
             if(con!=null)
                System.out.println("Conexión correcta.");
         }
         catch(Exception e){
             e.printStackTrace();
             System.out.println("Error de seguimiento en getConnection() : " + e.getMessage());
         }
         return con;
     }

   
     public void displayDbProperties(){
         java.sql.DatabaseMetaData dm = null;
         java.sql.ResultSet rs = null;
         try{
             con= this.getConnection();
             if(con!=null){
                 dm = con.getMetaData();
                 System.out.println("Información del controlador");
                 System.out.println(" Nombre del controlador: "+ dm.getDriverName());
                 System.out.println(" Versión del controlador: "+ dm.getDriverVersion ());
                 System.out.println(" Información de la base de datos ");
                 System.out.println(" Nombre de la base de datos: "+ dm.getDatabaseProductName());
                 System.out.println(" Versión de la base de datos: "+ dm.getDatabaseProductVersion());
                 System.out.println("Catálogos disponibles ");
                 rs = dm.getCatalogs();
                 while(rs.next()){
                     System.out.println(" catálogo: "+ rs.getString(1));
                 }
                 rs.close();
                 rs = null;
                 closeConnection();
             }
             
             else System.out.println("Error: No hay ninguna conexión activa");
         }
         
         catch(Exception e){
             e.printStackTrace();
         }
         dm=null;
     }     
     
     private void closeConnection(){
         try{
             if(con!=null) con.close();
             con=null;
         }
         
         catch(Exception e){
             e.printStackTrace();
         }
     }
     
     public static void main(String[] args) throws Exception {
         conexion myDbTest = new conexion();
         myDbTest.displayDbProperties();
     }
}


Y el error:


java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
Error de seguimiento en getConnection() : com.microsoft.jdbc.sqlserver.SQLServerDriver
Error: No hay ninguna conexión activa
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:164)
        at conexionsql.conexion.getConnection(conexion.java:28)
        at conexionsql.conexion.displayDbProperties(conexion.java:46)
        at conexionsql.conexion.main(conexion.java:87)



por lo buscando en google paresia ser que le faltaba un drive el sqljdbc.jar pero lo importe a la biblioteca pero persiste el error este es el prinsipal error pero tambien tengo otro problema en este codigo pide un usuario y contraseña para entar a la base de datos hay algun codigo para cuando la base de datos se encuentra con instancia de usuario?

aprovechando el post:

como puedo programar aplicaciones para movil en especial el iphone que son toushscreen y que tipo de api tengo que importar para hacerlo y lo mas importante como programo ese tipo de aplicaciones tomando encuenta que tengo algo de conosimiento en j2me?
El conocimiento es poder!!!

Saludos!!



Lu15_CL4

depende de que sql server tengas... este pedasito de texto lo descarge hace mucho haber si te sirve ^^
CitarNecesitas tener instalado el Service Pack 3 del SQL Server 2000  http://www.microsoft.com/downloads/details.aspx?FamilyID=90dcd52c-0488-4e46-afbf-acace5369fa3&DisplayLang=es#filelist, descarga el archivo "sql2ksp3.exe". Luego necesitas el driver JDBC para poder comunicarte con la base https://www.microsoft.com/downloads/details.aspx?familyid=07287B11-0502-461A-B138-2AA54BFDC03A&displaylang=en#filelist, descarga "setup.exe" y ejecutalo. Luego de todos esos pasos en el IdE que utilices para porgramar tienes que agregar los archivos "msbase.jar", "msutil.jar" y "mssqlserver.jar" a tu proyecto. Siempre es recomendable que crees una libreria con estos jar y despues en elproyecto agregues esta libreria con los jar's ya incluida. Por ultimo necesitas una clase que cree una conexion a la base.

public class Conexion {
   
    public java.sql.Connection createConnection() throws ConnectionFailureException {
        Connection conex = null;
        try {
            String sqlURL = "jdbc:microsoft:sqlserver://<host>:<port>;databaseName=<DB>";
            Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
            conex = DriverManager.getConnection(sqlURL, "user", "password");
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace();
        }
        return conex;
    }
}

Esta es una clase sencilla que te devuelve una conexion a una base de datos, tienes que reemplazar los valores "host", "port", "database", "user" y "password" por los que necesites. Espero que sea de utilidad.

Salu2.
es todo lo que se necesita pala pura conexion.., se nececita un objeta Statement para hacer consultas.

orita ando haciendo estas cosas con access..., no puedo ayudar mucho u_u
Te regalo .1 centavo de dolar diario, registrate aqui, pideme + info por PM ^^, el .1 centavo puede ir creciendo hasta el infinito!!! :xD ^^

shin_akuma

#2
 :xD

Cierto lo olvidava es microsoft sql server 2005 express
El conocimiento es poder!!!

Saludos!!



Lu15_CL4

Te regalo .1 centavo de dolar diario, registrate aqui, pideme + info por PM ^^, el .1 centavo puede ir creciendo hasta el infinito!!! :xD ^^