我是Android Studio的新手,我希望你不要把我的问题视为愚蠢。我正在尝试在android studio的终端中编写一个小程序。当我尝试运行相同的程序时在我的终端(不是安卓工作室)它工作正常。我通过浏览mysql JDBC driver to the android studio在android studio lib中添加了MySQL-connector.jar文件。但它没有工作。请帮助我。谢谢你。
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at MySQLConnectionExample.main(MySQLConnectionExample.java:16)
//执行后出错
An error occurred. Maybe user/password is invalid
java.sql.SQLException: No suitable driver found for
jdbc:mysql://127.0.0.1:3306/demo
at java.sql.DriverManager.getConnection(DriverManager.java:689)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at MySQLConnectionExample.main(MySQLConnectionExample.java:22)
当我删除" Class.forName(" com.mysql.jdbc.Driver")"从程序这是我得到的错误
onDrawFrame()
答案 0 :(得分:0)
您无法从Android设备直接连接到数据库。构建连接到数据库的API。然后将您的Android应用程序连接到这些API。
检查此答案是否有同样的问题https://stackoverflow.com/a/12233178/4442067
答案 1 :(得分:0)
我假设您正在尝试从Android设备直接连接到MySQL数据库。但首先,您有一个ClassNotFound
例外,这意味着您尚未导入该库。
当你让司机上班时,这部分还有更多问题:
....
try {
Class.forName("com.mysql.jdbc.Driver");
String url1 = "jdbc:mysql://127.0.0.1:3306/demo";
String user = "root";
String password = "mypassword";
conn1 = DriverManager.getConnection(url1, user, password);
....
通过在Android设备上指定127.0.0.1,您尝试连接到设备上的MySQL服务器。现在我不知道你是否可以在Android上安装MySQL,但你可能想在你的计算机上安装MySQL服务器。不言而喻,您必须使用该计算机的IP并在您的计算机上打开MySQL端口(3306)。
所以,您可能希望看到的是
....
try {
Class.forName("com.mysql.jdbc.Driver");
String url1 = "jdbc:mysql://192.168.1.10:3306/demo";
String user = "root";
String password = "mypassword";
conn1 = DriverManager.getConnection(url1, user, password);
....
这假设您的MySQL服务器已在IP地址为192.168.1.10
编辑:我不能真正推荐这种方法用于生产应用程序,因为我担心能够反编译代码的黑客可以做些什么。