Android - Android y SQL Server con JDBC

 
Vista:

Android y SQL Server con JDBC

Publicado por Daniel (3 intervenciones) el 17/01/2016 02:21:00
Hola, estoy intentando crear una app para android que necesita conectarse a una base de datos de sql server 2008, pero con mas ejemplos que veo por internet ninguno me funciona. He bajado desde la play store una app para conectar a bases de datos sql server y esta si conecta perfectamente, por lo que el servidor lo tengo bien configurado.

Os dejo mi código a ver si me veis algún error:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
package com.gb.daniel.sqlserver;
 
import android.annotation.SuppressLint;
import android.os.StrictMode;
import android.util.Log;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.DriverManager;
 
public class ConnectionClass {
    String classs = "net.sourceforge.jtds.jdbc.Driver";
 
    @SuppressLint("NewApi")
    public Connection CONN() {
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
                .permitAll().build();
        StrictMode.setThreadPolicy(policy);
        Connection conn = null;
        String ConnURL = null;
        try {
            Class.forName(classs);
            conn = DriverManager.getConnection("jdbc:jtds:sqlserver://IP_PUBLICA:1433/baseDatos;instance=INSTANCIA_SQL;user=usuario;password=contraseña;");
        } catch (SQLException se) {
            Log.e("ERROR:1", se.getMessage());
        } catch (ClassNotFoundException e) {
            Log.e("ERROR:2", e.getMessage());
        } catch (Exception e) {
            Log.e("ERROR:3", e.getMessage());
        }
        return conn;
    }
}
 
 
 
 
package com.gb.daniel.sqlserver;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
 
import java.sql.Connection;
 
public class MainActivity extends AppCompatActivity {
 
    ConnectionClass connectionClass;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        Button btLogin = (Button) findViewById(R.id.btLogin);
 
        btLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
 
                connectionClass = new ConnectionClass();
                try {
 
                    Connection conn = connectionClass.CONN( );
                    if (conn == null) {
                        Toast.makeText(getBaseContext(), "No se pudo establecer la conexion", Toast.LENGTH_SHORT).show();
                    }else{
                        Toast.makeText(getBaseContext(), "Conexión realizada correctamente", Toast.LENGTH_SHORT).show();
                    }
                }catch (Exception e){
                    Log.e("ERROR - ", e.getMessage());
                }
 
            }
        });
 
    }
}

he añadido la carpeta del driver de JTDS v.1.3.1 y añadido en el Android Studio la librería .jar a las dependencias.
En la dirección de conexión, jdbc:jtds:sqlserver://IP_PUBLICA:1433/baseDatos, si quito la base de datos la aplicación no llega a abrir.


Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Android y SQL Server con JDBC

Publicado por Daniel (3 intervenciones) el 24/01/2016 01:28:35
Ya que nadie me ha contestado os voy a resolver yo la duda para quien también le falle la conexión con sql server:

la solución ha sido usar Asynctask y una versión más antigua del driver JDBC, he usado la 1.2.

os dejo el código por si alguien lo quiere:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        Button btConectar = (Button) findViewById(R.id.btConectar);
 
        btConectar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Conectar conectar = new Conectar();
                conectar.execute();
            }
        });
    }
 
 
    private class Conectar extends AsyncTask<Void, Integer, Boolean> {
        @Override
        protected Boolean doInBackground(Void... params) {
            try {
                String url = "jdbc:jtds:sqlserver://ip_servidor;USER=xxx;PASSWORD=xxx";
                Log.i("url", url);
                Class.forName( "net.sourceforge.jtds.jdbc.Driver").newInstance();
                Connection conn = DriverManager.getConnection(url);
                if (conn == null)
                {
                    return false;
                }
            } catch (NoClassDefFoundError e){
                Log.e("Definicion de clase",e.getMessage());
            } catch (ClassNotFoundException e) {
                Log.e("Clase no encontrada",e.getMessage());
            } catch (Exception e) {
                Log.e("ERROR Conexion:",e.getMessage());
                return false;
            }
            return true;
        }
 
        @Override
        protected void onPostExecute(Boolean resultado) {
            if(resultado) {
                Toast.makeText(getBaseContext(), "Conectado", Toast.LENGTH_SHORT).show();
                Log.d("LOG:", "conectado");
            }else {
                Toast.makeText(getBaseContext(), "No conectado", Toast.LENGTH_SHORT).show();
                Log.d("LOG:", "no conectado");
            }
        }
    }
 
 
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Android y SQL Server con JDBC

Publicado por Luis Samani (1 intervención) el 17/08/2016 17:27:59
Gracias por el aporte hermano!!
:D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Android y SQL Server con JDBC

Publicado por Joe (1 intervención) el 23/08/2016 17:51:44
Muchas gracias por el aporte, es exactamente lo que estaba buscando, te sacaste un 10 !!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Android y SQL Server con JDBC

Publicado por Jose Giron (1 intervención) el 14/12/2016 00:07:47
Consulta Esimados
En esta parte String url = "jdbc:jtds:sqlserver://ip_servidor;USER=xxx;PASSWORD=xxx"; la cadena de conexion especificamente en Ip?servidor si mi sql server no lo ingreso con Ip si no que con nombre se puede cambiar la ip por el nombre del servidor..

Y la otra consulta es puedo conectarme desde cualquier red o tengo que estar conectado a la misma red que esta el servidor......

Muchas gracias de antemano por sus respuesta....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Android y SQL Server con JDBC

Publicado por guillermo Ruben nuñez ramos (1 intervención) el 28/10/2017 16:39:34
amigo y todo ese codigo se pone nada mas en una clase o va aparte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Android y SQL Server con JDBC

Publicado por reivin (1 intervención) el 05/06/2019 21:25:21
grasias por el aporta chaval
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Android y SQL Server con JDBC

Publicado por Maxi (1 intervención) el 27/03/2017 14:09:24
Hola amigo! Viendo tu forma de resolverlo la cual me ayudó muchisimo.. me surgió una duda, yo estoy haciendo la conexión en otra clase y quería preguntarte como obtienes el "getBaseContext()".

Desde ya muchas gracias y espero tu respuesta!! Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Android y SQL Server con JDBC

Publicado por JuanS (1 intervención) el 26/09/2017 23:48:50
Estimados, me he dado la vuelta por todos lados para encontrar como insertar, actualizar y eliminar datos de una tabla en SQL Server desde una aplicacion en Android Studio. Alguien me podria dar alguna ayuda o consejo donde buscar. Yo ya me conecte a la Base de Datos con JDBC y tambien realizo un Select. ahora necesito hacer un mantenedor. Saludos y gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 112
Bronce
Ha disminuido 1 puesto en Android (en relación al último mes)
Gráfica de Android

Android y SQL Server con JDBC

Publicado por Yamil Bracho (100 intervenciones) el 26/09/2017 23:56:13
Una vez que tengas el Connection puedes usar Statement or PreparedStatement y el metodo executeQuery...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Android y SQL Server con JDBC

Publicado por renato mendiola (1 intervención) el 13/11/2017 04:54:06
buenas noches yo estoy trabajando con una app ya tengo conexión a la base de datos he incluso ya puedo mostrar los registros de la bd, lo que no puedo es mostrar los datos en una tabla (tableLayout) podrias guiarme? te lo agradecería mucho
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Android y SQL Server con JDBC

Publicado por lamf23 (1 intervención) el 14/08/2019 22:40:22
hey estoy haciendo eso mismo, y no se me conecta, a la base de datos.
creo que tengo problema con la url, pero no se que es.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar