'I cant connect to MySql database Android studio with jdbc
try {
conn = DriverManager.getConnection(databaseURL, user, password);
if (conn != null) {
}
} catch (SQLException ex) {
username="dsadsa2";
ex.printStackTrace();
} finally {
if (conn != null) {
try {
username="dsadsa";
conn.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
I trying with this code,
databaseURL="jdbc:mysql://DATABASE_IP:3306/DATABASE_NAME"
maybe wrong syntax?
Its always get to SQLException and doesnt write in log anything...
Not sure why its happend?
logs
03-05 14:18:33.862 8177-8177/com.example.myapplication E/YOUR_APP_LOG_TAG: I got an error java.lang.ClassNotFoundException: com.mysql.jdbc.Driver at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:309) at java.lang.Class.forName(Class.java:273) at com.example.myapplication.VestActivity.onCreate(VestActivity.java:73) at android.app.Activity.performCreate(Activity.java:5990) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2280) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2392) at android.app.ActivityThread.access$800(ActivityThread.java:153) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1305) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5305) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Caused by: java.lang.ClassNotFoundException: Didn't find class "com.mysql.jdbc.Driver" on path: DexPathList[[zip file "/data/app/com.example.myapplication-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:511) at java.lang.ClassLoader.loadClass(ClassLoader.java:469) at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:309) at java.lang.Class.forName(Class.java:273) at com.example.myapplication.VestActivity.onCreate(VestActivity.java:73) at android.app.Activity.performCreate(Activity.java:5990) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2280) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2392) at android.app.ActivityThread.access$800(ActivityThread.java:153) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1305) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5305) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Suppressed: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver at java.lang.Class.classForName(Native Method) at java.lang.BootClassLoader.findClass(ClassLoader.java:781) at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) at java.lang.ClassLoader.loadClass(ClassLoader.java:504) ... 18 more Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available 03-05 14:18:33.863 8177-8177/com.example.myapplication E/YOUR_APP_LOG_TAG: I got an error java.sql.SQLException: No suitable driver at java.sql.DriverManager.getConnection(DriverManager.java:186) at java.sql.DriverManager.getConnection(DriverManager.java:213) at com.example.myapplication.VestActivity.onCreate(VestActivity.java:79) at android.app.Activity.performCreate(Activity.java:5990) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2280) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2392) at android.app.ActivityThread.access$800(ActivityThread.java:153) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1305) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5305) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 03-05 14:18:33.918 8177-8177/com.example.myapplication E/libEGL: validate_display:255 error 3008 (EGL_BAD_DISPLAY)
Solution 1:[1]
First you have to add jtds library in dependencies as,
public class ConnectionClass
{
Connection con;
@SuppressLint("NewApi")
public Connection conclass(){
String ip= "yourip",port="1433",database="DatabaseName",username="username",password="password@123";
StrictMode.ThreadPolicy a=new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(a);
String connecturl=null;
try{
Class.forName("net.sourceforge.jtds.jdbc.Driver");
connecturl = "jdbc:jtds:sqlserver://" + ip + ":" + port + ";databasename=" + database + ";user=" + username + ";"+"password=" + password + ";";
con = DriverManager.getConnection(connecturl);
} catch (Exception e) {
Log.e("Error :", e.getMessage());
}
return con;
}
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Anil Nivargi |
