Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Tedorius
7 / 7 / 2
Регистрация: 12.06.2012
Сообщений: 59
1

java.sql.SQLException: No suitable driver

03.05.2013, 13:32. Просмотров 2106. Ответов 16
Метки нет (Все метки)

Не подключается к БД... расскажите пожалуйста как сделать правильно.

Java
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
package ua.ааа.primer;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.content.pm.ActivityInfo;
import android.view.WindowManager;
 
 
public class MainActivity extends Activity {
    
    
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_main);
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    ////////////////////////////////////////////////////////
    public void onClick(final View v) 
    {
         new Thread(new Runnable() {
                public void run() {
                     Log.e("My Logs", "Запускаем поток");
                /*  
        switch (v.getId()) 
        {
            case R.id.button1:
                Intent intent = new Intent(MainActivity.this, Main_class.class);
                startActivity(intent);
                Log.e("My Logs", "Перешли на новый экран!");
                break;
        }*/
                    /////////////////////////////////////////////////////////////////////////////
                    try {
                      Log.e("My Logs", "Подключаем драйвер");
                      Class.forName("com.mysql.jdbc.Driver").newInstance();
                    
                      Log.e("My Logs", "Подключили драйвер +");                   
                    } catch (InstantiationException e) {
                      Log.e("My Logs", "не подключили -");
                      e.printStackTrace();
                    } catch (IllegalAccessException e) { 
                      Log.e("My Logs", "Не подключили, правов маловато");
                      e.printStackTrace();
                    } catch (ClassNotFoundException e) {
                      Log.e("My Logs", "Не подключили класс не найден");
                      e.printStackTrace();
                    }
                
                try {
                    String query = "SELECT * FROM products WHERE id = 1";
                    
                    Connection conn = null;
                    String userName = "android";
                    String password = "android";
                    String url = "jdbc:mysql:localhost:1433/android_db";
                    Log.e("My Logs", "Подключаемся к базе"); 
                    conn = DriverManager.getConnection(url, userName, password);
                    Log.e("My Logs", "Подключилось +");
                    Statement s = null;
                    s = conn.createStatement();
                    s.executeQuery(query);
                    ResultSet rs = null;
                    rs = s.getResultSet();
                    while (rs.next()) {
                        }
                      rs.close();
                      s.close();
                      conn.close();
                }
                
                catch (SQLException e) {
                      Log.e("My Logs", "Не получилось -");
                      e.printStackTrace();
                    }
                    
                }
        }).start();
    
        
        }
 
}
classpath
XML
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="src" path="gen"/>
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
    <classpathentry kind="lib" path="E:/mysql-connector-java-5.0.8-bin.jar"/>
    <classpathentry kind="output" path="bin/classes"/>
</classpath>
Log
05-03 12:26:27.441: E/My Logs(27037): Запускаем поток
05-03 12:26:27.442: E/My Logs(27037): Подключаем драйвер
05-03 12:26:27.444: E/My Logs(27037): Подключили драйвер +
05-03 12:26:27.444: E/My Logs(27037): Подключаемся к базе
05-03 12:26:27.448: E/My Logs(27037): Не получилось -
05-03 12:26:27.450: W/System.err(27037): java.sql.SQLException: No suitable driver
05-03 12:26:27.451: W/System.err(27037): at java.sql.DriverManager.getConnection(DriverManager.java:182)
05-03 12:26:27.452: W/System.err(27037): at java.sql.DriverManager.getConnection(DriverManager.java:209)
05-03 12:26:27.452: W/System.err(27037): at ua.Sobolev.diplom.MainActivity$1.run(MainActivity.java:75)
05-03 12:26:27.452: W/System.err(27037): at java.lang.Thread.run(Thread.java:856)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2013, 13:32
Ответы с готовыми решениями:

The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) enc
При попытке подключение к SQL возникла ошибка:The driver could not establish a...

Подключение java к базе данных sql 2008 r2
Всем доброго времени суток.Нужна помощь в подключении java с sql , через...

Java.sql.SQLException: No suitable driver found for com.mysql.jdbc:mysql://localhost:3306/log
Пол дня просидел, и так, и сяк пробовал, никак. Eclipse EE public static void...

java.sql.SQLException: закрытая команда
День добрый! Цепляю со стороны Java процедуру Oracle, дергаю... Иногда (не...

Cause: java.sql.SQLException: Переполнение числа
Столкнулся с непонятной пока для меня проблемой: 1. поле в базе (Oracle) -...

16
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
03.05.2013, 15:23 2
ну, во-первых чтобы подключить jar к андроид проекту нужно просто скопировать его в папку libs. как так получилось что он у вас в корневой директории диска Е?
0
Tedorius
7 / 7 / 2
Регистрация: 12.06.2012
Сообщений: 59
03.05.2013, 15:33  [ТС] 3
V0v1k, jar находится в libs, но само по себе это результата не дает.
0
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
03.05.2013, 15:37 4
Правой клавишей по jar и add to build path?
0
Tedorius
7 / 7 / 2
Регистрация: 12.06.2012
Сообщений: 59
03.05.2013, 15:40  [ТС] 5
YuraAAA, результат не изменился

Добавлено через 35 секунд
уже было добавлено
0
Tedorius
7 / 7 / 2
Регистрация: 12.06.2012
Сообщений: 59
03.05.2013, 17:09  [ТС] 6
Т.е. jdbc добавлен, но ошибка java.sql.SQLException: No suitable driver вылетает...что не так?
0
Миниатюры
java.sql.SQLException: No suitable driver  
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.05.2013, 13:21 7
сделайте клин-билд, скачайте свежую версию драйвера. не знаю что еще посоветовать.

Добавлено через 1 минуту
если добавили через Add Jar - удалите.

Добавлено через 4 минуты
здесь были похожие темы и некоторые выкладывали свои проекты, найдите их и используйте как пример.
1
Tedorius
7 / 7 / 2
Регистрация: 12.06.2012
Сообщений: 59
04.05.2013, 15:05  [ТС] 8
Создал с нуля проект, скачал последние версии. Логи:
Код
05-04 13:52:49.162: E/My Logs(21462): Запускаем поток
05-04 13:52:49.162: E/My Logs(21462): Подключаем драйвер
05-04 13:52:49.167: E/My Logs(21462): Подключили драйвер +
05-04 13:52:49.167: E/My Logs(21462): Подключаемся к базе
05-04 13:52:49.316: W/dalvikvm(21462): VFY: unable to find class referenced in signature (Ljavax/naming/Reference;)
05-04 13:52:49.316: W/dalvikvm(21462): VFY: unable to resolve virtual method 11701: Ljavax/naming/Reference;.get (Ljava/lang/String;)Ljavax/naming/RefAddr;
05-04 13:52:49.316: W/dalvikvm(21462): VFY: unable to find class referenced in signature (Ljavax/naming/Reference;)
05-04 13:52:49.316: E/dalvikvm(21462): Could not find class 'javax.naming.StringRefAddr', referenced from method com.mysql.jdbc.ConnectionPropertiesImpl$ConnectionProperty.storeTo
05-04 13:52:49.316: W/dalvikvm(21462): VFY: unable to resolve new-instance 973 (Ljavax/naming/StringRefAddr;) in Lcom/mysql/jdbc/ConnectionPropertiesImpl$ConnectionProperty;
05-04 13:52:49.393: W/dalvikvm(21462): VFY: unable to resolve static method 11040: Ljava/lang/management/ManagementFactory;.getThreadMXBean ()Ljava/lang/management/ThreadMXBean;
05-04 13:52:49.456: E/My Logs(21462): Не получилось -
05-04 13:52:49.458: W/System.err(21462): com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
05-04 13:52:49.458: W/System.err(21462): The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
05-04 13:52:49.459: W/System.err(21462): 	at java.lang.reflect.Constructor.constructNative(Native Method)
05-04 13:52:49.460: W/System.err(21462): 	at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
05-04 13:52:49.460: W/System.err(21462): 	at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
05-04 13:52:49.461: W/System.err(21462): 	at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1121)
05-04 13:52:49.461: W/System.err(21462): 	at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:357)
05-04 13:52:49.461: W/System.err(21462): 	at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2479)
05-04 13:52:49.462: W/System.err(21462): 	at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2516)
05-04 13:52:49.462: W/System.err(21462): 	at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2301)
05-04 13:52:49.462: W/System.err(21462): 	at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:834)
05-04 13:52:49.463: W/System.err(21462): 	at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
05-04 13:52:49.463: W/System.err(21462): 	at java.lang.reflect.Constructor.constructNative(Native Method)
05-04 13:52:49.464: W/System.err(21462): 	at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
05-04 13:52:49.464: W/System.err(21462): 	at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
05-04 13:52:49.465: W/System.err(21462): 	at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:416)
05-04 13:52:49.465: W/System.err(21462): 	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:346)
05-04 13:52:49.466: W/System.err(21462): 	at java.sql.DriverManager.getConnection(DriverManager.java:175)
05-04 13:52:49.467: W/System.err(21462): 	at java.sql.DriverManager.getConnection(DriverManager.java:209)
05-04 13:52:49.467: W/System.err(21462): 	at ua.example.mysql.MainActivity$1.run(MainActivity.java:63)
05-04 13:52:49.467: W/System.err(21462): 	at java.lang.Thread.run(Thread.java:856)
05-04 13:52:49.468: W/System.err(21462): Caused by: java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 3306) after 90000ms: isConnected failed: ECONNREFUSED (Connection refused)
05-04 13:52:49.469: W/System.err(21462): 	at libcore.io.IoBridge.isConnected(IoBridge.java:249)
05-04 13:52:49.469: W/System.err(21462): 	at libcore.io.IoBridge.connectErrno(IoBridge.java:181)
05-04 13:52:49.470: W/System.err(21462): 	at libcore.io.IoBridge.connect(IoBridge.java:112)
05-04 13:52:49.470: W/System.err(21462): 	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
05-04 13:52:49.471: W/System.err(21462): 	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
05-04 13:52:49.471: W/System.err(21462): 	at java.net.Socket.startupSocket(Socket.java:573)
05-04 13:52:49.471: W/System.err(21462): 	at java.net.Socket.<init>(Socket.java:226)
05-04 13:52:49.472: W/System.err(21462): 	at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:259)
05-04 13:52:49.472: W/System.err(21462): 	at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:307)
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
04.05.2013, 15:28 9
ошибка конекшена, или линк неправильный, или сервер отказывает в конекшене.
0
c4sp3r
0x5B4C322291BD52AE
94 / 94 / 0
Регистрация: 04.03.2013
Сообщений: 295
08.05.2013, 21:02 10
Что-то я не понял под Android MySQL сервер появился? Куда ТС пытается приконнектится?
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
08.05.2013, 22:02 11
Цитата Сообщение от c4sp3r Посмотреть сообщение
Куда ТС пытается приконнектится?
к базе на сервере.
0
c4sp3r
0x5B4C322291BD52AE
94 / 94 / 0
Регистрация: 04.03.2013
Сообщений: 295
08.05.2013, 22:11 12
Цитата Сообщение от V0v1k Посмотреть сообщение
к базе на сервере.
Java
1
String url = "jdbc:mysql:localhost:1433/android_db";
?
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
08.05.2013, 22:14 13
кстати да, если сервер на вашем компе, то вроде нужно по айпишке конектиться а не localhost.

Добавлено через 1 минуту
вот похожая тема, и человек выложил свой проект, может поможет
Работа с MySQL
0
c4sp3r
0x5B4C322291BD52AE
94 / 94 / 0
Регистрация: 04.03.2013
Сообщений: 295
08.05.2013, 22:24 14
Цитата Сообщение от V0v1k Посмотреть сообщение
если сервер на вашем компе, то вроде нужно по айпишке конектиться а не localhost.
Можно и доменное имя использовать а localhost в данном случае эмулятор или само устройство и мои телепатические способности как раз подсказывают мне что ТС пытается приконектится к MySQL серверу который якобы установлен на его эмуляторе или устройстве.
1
Tedorius
7 / 7 / 2
Регистрация: 12.06.2012
Сообщений: 59
09.05.2013, 11:07  [ТС] 15
c4sp3r, Тема для меня уже не актуальна, но скажу как я только не пробовал...и доменное имя и айпишник, и порты проверял и тд. - не получилось.
0
c4sp3r
0x5B4C322291BD52AE
94 / 94 / 0
Регистрация: 04.03.2013
Сообщений: 295
09.05.2013, 11:38 16
Tedorius, ну если что на будущее:

http://developer.android.com/tools/d...atornetworking
1
kompnm
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 1
17.06.2013, 10:50 17
Дело в том что:
на сколько я знаю андроид не может корректно работать с драйвером jdbc и специально для этого придумали jtds - а может и не специально!
короче лучше один раз показать....

Java
1
2
3
4
5
6
7
8
9
10
11
12
Class.forName("net.sourceforge.jtds.jdbc.Driver");              con=DriverManager.getConnection("jdbc:jtds:sqlserver://8.8.8.8:1433/BAZA;","sa","mypass");
                try{
                    Statement st=con.createStatement();
                ResultSet rs=st.executeQuery("SELECT *  FROM [baza].[dbo].[Order] WHERE OrderID = 10";
                rs.next( ); 
..............................
}
 catch(Exception e)
{
system.out.println("no connect");
 
}

не забываем добавть сам jtds http://sourceforge.net/projects/jtds/files/jtds/1.2.5/

данная связка тестилась на Android 2.3.3, на других версиях конекта может не быть.... пробуем другие версии jtds
0
17.06.2013, 10:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2013, 10:50

java.sql.SQLException: No ResultSet was produced
При выполнение инсерта вылитает ошибка. Но данные в бд обновляется а в Jtable...

Exception is ;java.sql.SQLException Закрытое соединение
Это мой java класс который я вызываю в jsp файле. Но после того как 1 раз уже...

Вылетает ошибка java.sql.SQLException: Column 'id' not found
При попытке получения данных из MySQl вылетает ошибка java.sql.SQLException:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru