java.sql.SQLException: Internal jdbc driver error
at org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCStatementImpl.handleExecuteError(JDBCStatementImpl.java:309)
at org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCStatementImpl.execute(JDBCStatementImpl.java:343)
at org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCStatementImpl.executeStatement(JDBCStatementImpl.java:134)
at org.jkiss.dbeaver.runtime.sql.SQLQueryJob.executeStatement(SQLQueryJob.java:448)
at org.jkiss.dbeaver.runtime.sql.SQLQueryJob.lambda$0(SQLQueryJob.java:392)
at org.jkiss.dbeaver.model.DBUtils.tryExecuteRecover(DBUtils.java:1598)
at org.jkiss.dbeaver.runtime.sql.SQLQueryJob.executeSingleQuery(SQLQueryJob.java:390)
at org.jkiss.dbeaver.runtime.sql.SQLQueryJob.extractData(SQLQueryJob.java:822)
at org.jkiss.dbeaver.ui.editors.sql.SQLEditor$QueryResultsContainer.readData(SQLEditor.java:2384)
at org.jkiss.dbeaver.ui.controls.resultset.ResultSetJobDataRead.lambda$0(ResultSetJobDataRead.java:93)
at org.jkiss.dbeaver.model.DBUtils.tryExecuteRecover(DBUtils.java:1598)
at org.jkiss.dbeaver.ui.controls.resultset.ResultSetJobDataRead.run(ResultSetJobDataRead.java:91)
at org.jkiss.dbeaver.model.runtime.AbstractJob.run(AbstractJob.java:95)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)
Caused by: java.lang.IllegalArgumentException
at java.nio.Buffer.limit(Buffer.java:275)
at oracle.net.ns.NIOPacket.readFromSocketChannel(NIOPacket.java:142)
at oracle.net.ns.NIOPacket.readFromSocketChannel(NIOPacket.java:101)
at oracle.net.ns.NIONSDataChannel.readDataFromSocketChannel(NIONSDataChannel.java:80)
at oracle.net.ano.CryptoNIONSDataChannel.readDataFromSocketChannel(Unknown Source)
at oracle.jdbc.driver.T4CMAREngineNIO.prepareForReading(T4CMAREngineNIO.java:98)
at oracle.jdbc.driver.T4CMAREngineNIO.unmarshalUB1(T4CMAREngineNIO.java:534)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:485)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:252)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:612)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:213)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:37)
at oracle.jdbc.driver.T4CStatement.executeForDescribe(T4CStatement.java:733)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:904)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1082)
at oracle.jdbc.driver.OracleStatement.doScrollExecuteCommon(OracleStatement.java:4646)
at oracle.jdbc.driver.OracleStatement.doScrollStmtExecuteQuery(OracleStatement.java:4762)
at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1741)
at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1692)
at oracle.jdbc.driver.OracleStatementWrapper.execute(OracleStatementWrapper.java:300)
at org.jkiss.dbeaver.model.impl.jdbc.exec.JDBCStatementImpl.execute(JDBCStatementImpl.java:341)
... 12 more
Error when expanding table list in 3.5
Error when expanding table list in 3.5
I just downloaded and installed 3.5. I’m seeing this error when I attempt to expand the table list. Any idea what might be causing this?
DBCException: SQL Error: Internal jdbc driver error
SQLException: Internal jdbc driver error
java.lang.NullPointerException: NullPointerException
- Lalato
- Posts: 11
- Joined: Tue Feb 04, 2014 10:01 pm
Re: Error when expanding table list in 3.5
by Serge » Sat Oct 03, 2015 8:41 pm
Please post full stacktrace (you get it in Error Log view — it can be opened from main menu Window).
BTW what database driver do you use?
- Serge
- Posts: 1526
- Joined: Sat Feb 26, 2011 8:24 pm
- Location: SPb
-
- Website
Re: Error when expanding table list in 3.5
by Lalato » Sun Oct 04, 2015 11:56 am
- Lalato
- Posts: 11
- Joined: Tue Feb 04, 2014 10:01 pm
Re: Error when expanding table list in 3.5
by Serge » Sun Oct 04, 2015 4:22 pm
Most recent MariaDB driver is beta and it has a lot of issues. I’ll fix this problem in the next DBeaver version (it won’t use alpha and beta versions of drivers). Thanks for report.
Workaround: manually add jars from a stable MariaDB driver or use MySQL driver.
- Serge
- Posts: 1526
- Joined: Sat Feb 26, 2011 8:24 pm
- Location: SPb
-
- Website
Re: Error when expanding table list in 3.5
by Lalato » Sun Oct 04, 2015 11:08 pm
Reverted to 1.2.2 and everything appears to be working as it should. Thanks for the quick response.
- Lalato
- Posts: 11
- Joined: Tue Feb 04, 2014 10:01 pm
Return to Support
Who is online
Users browsing this forum: No registered users and 13 guests
Problem
This document discusses the problem and resolution for receiving an error, «java.sql.SQLException: Internal driver error» from the IBM Toolbox for Java JDBC Driver.
Resolving The Problem
Problem
The following message is received while testing a WebSphere data source connection that uses the IBM Toolbox for Java JDBC Driver in the WebSphere Application Server Integrated Solutions Console.
[9/16/10 17:11:08:281 EST] 0000002a SystemErr R java.sql.SQLException: Internal driver error. (class java.lang.ClassCastException)DSRA0010E: SQL State = HY000, Error Code = -99,999DSRA0010E: SQL State = HY000, Error Code = -99,999
at java.lang.Throwable.<init>(Throwable.java:195)
at java.lang.Exception.<init>(Exception.java:41)
at java.sql.SQLException.<init>(SQLException.java:40)
at com.ibm.as400.access.JDError.throwSQLException(JDError.java:528)
at com.ibm.as400.access.AS400JDBCConnection.sendAndReceive(AS400JDBCConnection.java:2690)
at com.ibm.as400.access.AS400JDBCConnection.sendAndReceive(AS400JDBCConnection.java:2598)
at com.ibm.as400.access.AS400JDBCConnection.setServerAttributes(AS400JDBCConnection.java:3682)
at com.ibm.as400.access.AS400JDBCConnection.setProperties(AS400JDBCConnection.java:2987)
at com.ibm.as400.access.AS400JDBCConnection.setProperties(AS400JDBCConnection.java:2884)
at com.ibm.as400.access.AS400JDBCConnection.setProperties(AS400JDBCConnection.java:2877)
at com.ibm.as400.access.AS400JDBCDataSource.getConnection(AS400JDBCDataSource.java:619)
at com.ibm.as400.access.AS400JDBCDataSource.getConnection(AS400JDBCDataSource.java:592)
at com.ibm.as400.access.AS400JDBCConnectionPoolDataSource.getPooledConnection(AS400JDBCConnectionPoolDataSource.java:223)
at com.ibm.ws.rsadapter.DSConfigurationHelper$1.run(DSConfigurationHelper.java:1071)
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:115)
at com.ibm.ws.rsadapter.DSConfigurationHelper.getPooledConnection(DSConfigurationHelper.java:1104)
at com.ibm.ws.rsadapter.spi.WSRdbDataSource.getPooledConnection(WSRdbDataSource.java:1320)
at com.ibm.ws.rsadapter.spi.WSManagedConnectionFactoryImpl.createManagedConnection(WSManagedConnectionFactoryImpl.java:982)
at com.ibm.ejs.j2c.poolmanager.FreePool.createManagedConnectionWithMCWrapper(FreePool.java:1697)
at com.ibm.ejs.j2c.poolmanager.FreePool.createOrWaitForConnection(FreePool.java:1453)
at com.ibm.ejs.j2c.poolmanager.PoolManager.reserve(PoolManager.java:2157)
at com.ibm.ejs.j2c.ConnectionManager.allocateMCWrapper(ConnectionManager.java:929)
at com.ibm.ejs.j2c.ConnectionManager.allocateConnection(ConnectionManager.java:633)
at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:413)
at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:636)
at au.com.tupperware.dbutil.DBUtil.getConnection(DBUtil.java:98)
at au.com.tupperware.integration.core.DBTransactionClient.run(DBTransactionClient.java:79)
A synchronization issue with the driver was causing the internal error.
Resolution
Install the latest PTFs for the IBM Toolbox for Java to update the jt400.jar and jt400Native.jar files to the latest levels. If the latest PTFs are already applied, remove the PTFs then reapply them. You can find the latest PTFs by finding the latest version of toolbox available.
This version can be found on the following website: //sourceforge.net/projects/jt400/
Then, go to the following URL to search on available APARs: http://www-912.ibm.com/n_dir/nas4apar.nsf/nas4aparhome
Search on the keywords «jt400» or «jt400Native» and the version of JTOpen needed (for example, «jt400 7.1»). This search returns the latest APARs for IBM i 7.1, 6.1 and 5.4. It also returns the latest APARs for the jt400Native.jar. Then, find the appropriate release and identify the appropriate PTFs in the APAR text under the PTFs Available section.
[{«Product»:{«code»:»SWG60″,»label»:»IBM i»},»Business Unit»:{«code»:»BU058″,»label»:»IBM Infrastructure w/TPS»},»Component»:»Data Access»,»Platform»:[{«code»:»PF012″,»label»:»IBM i»}],»Version»:»Version Independent»,»Edition»:»»,»Line of Business»:{«code»:»LOB57″,»label»:»Power»}}]
Historical Number
573140032
этот вопрос уже есть ответ здесь:
-
печально известная java.язык SQL.SQLException: не найден подходящий драйвер
9 ответов
Я пытаюсь создать соединение с моей базой данных, когда я ставлю тестовый код с помощью основного метода, он работает без проблем. Однако при попытке получить доступ к нему через Tomcat 7 он терпит неудачу ошибка:
No suitable driver found for jdbc:mysql://localhost/dbname.
Я использую пул. Я поставил в mysql connector (5.1.15), dbcp(1.4) и пул (1.4.5) библиотеки в WEB-INF/lib и in .классов, а также. Я использую Eclipse IDE. Мой код для драйвера базы данных:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.apache.tomcat.dbcp.dbcp.ConnectionFactory;
import org.apache.tomcat.dbcp.dbcp.DriverManagerConnectionFactory;
import org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory;
import org.apache.tomcat.dbcp.dbcp.PoolingDriver;
import org.apache.tomcat.dbcp.pool.impl.GenericObjectPool;
public class DatabaseConnector {
public static String DB_URI = "jdbc:mysql://localhost/dbname";
public static String DB_USER = "test";
public static String DB_PASS = "password";
// Singleton instance
protected static DatabaseConnector _instance;
protected String _uri;
protected String _username;
protected String _password;
/**
* Singleton, so no public constructor
*/
protected DatabaseConnector(String uri, String username, String password) {
_uri = uri;
_username = username;
_password = password;
GenericObjectPool connectionPool = new GenericObjectPool(null);
ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(
_uri, _username, _password);
PoolableConnectionFactory poolableConnectionFactory =
new PoolableConnectionFactory(connectionFactory, connectionPool,
null, null, false, true);
PoolingDriver driver = new PoolingDriver();
driver.registerPool("test", connectionPool);
}
/**
* Returns the singleton instance
*/
public static DatabaseConnector getInstance() {
if (_instance == null) {
_instance = new DatabaseConnector(DB_URI, DB_USER, DB_PASS);
}
return _instance;
}
/**
* Returns a connection to the database
*/
public Connection getConnection() {
Connection con = null;
try {
con = DriverManager.getConnection("jdbc:apache:commons:dbcp:test");
} catch (SQLException e) {
throw new RuntimeException(e);
}
return con;
}
}
начало трассировки стека:
Apr 5, 2011 9:49:14 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Login] in context with path [/Project]
threw exception
java.lang.RuntimeException: java.sql.SQLException:
No suitable driver found for jdbc:mysql://localhost/dbname
что вызывает эту ошибку?
21 ответов
Попробуйте поместить jar драйвера в папку lib сервера. ($CATALINA_HOME / lib)
Я считаю, что пул соединений должен быть настроен еще до создания экземпляра приложения. (По крайней мере, так это работает в JBoss)
49
автор: uncaught_exceptions
причина, по которой вы получили эту ошибку:
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/dbname
это потому, что вы забыли зарегистрировать драйвер JDBC mysql с приложением java.
вот что вы написали:
Connection con = null;
try {
con = DriverManager.getConnection("jdbc:apache:commons:dbcp:test");
} catch (SQLException e) {
throw new RuntimeException(e);
}
должно быть:
Connection con = null;
try {
//registering the jdbc driver here, your string to use
//here depends on what driver you are using.
Class.forName("something.jdbc.driver.YourFubarDriver");
con = DriverManager.getConnection("jdbc:apache:commons:dbcp:test");
} catch (SQLException e) {
throw new RuntimeException(e);
}
вам нужно будет прочитать руководство по конкретному драйверу mysql JDBC, чтобы найти точную строку для размещения внутри класса.forName(«…») параметр.
класса.forName не требуется с JDBC V. 4
начиная с Java 6, Class.forName("something.jdbc.driver.YourFubarDriver")
больше не нужно, если вы используете последние (с JDBC В. 4) водитель. Подробнее читайте здесь: http://onjava.com/pub/a/onjava/2006/08/02/jjdbc-4-enhancements-in-java-se-6.html
39
автор: Eric Leschinski
у меня была та же проблема с использованием Tomcat7 с mysql-connector-java-5.1.26, что я положил в оба моих $CATALINA_HOME/lib и WEB-INF/lib, на всякий случай. Но он не найдет его, пока я не использую один из этих двух операторов, прежде чем получить соединение:
DriverManager.registerDriver(new com.mysql.jdbc.Driver ());
или
Class.forName("com.mysql.jdbc.Driver");
затем я продолжил удаление mysql-connector-java-5.1.26 из $CATALINA_HOME / lib, и соединение все еще работает.
при запуске tomcat из eclipse он не будет выбирать lib, установленный в CATALINA_HOME/lib
, есть два способа исправить это. Дважды щелкните на сервере Tomcat в представлении серверов eclipse, он откроет конфигурацию плагина tomcat, а затем либо:
- нажмите «Open Launch Config» > вкладка Classpath установите местоположение MySQL connector/j jar.
или - расположение сервера > выберите опцию, которая говорит » использовать установку Tomcat (взять под контроль установку Tomcat)»
У меня была библиотека mysql jdbc как в $CATALINA_HOME/lib, так и в WEB-INF / lib, но я получил эту ошибку . Мне нужны были занятия.forName(«com по.для MySQL.интерфейс jdbc.Водителя»); чтобы заставить его работать.
у меня была та же проблема, все, что вам нужно сделать, это определить переменную среды classpath для tomcat, вы можете сделать это, добавив файл, в моем случае C:apache-tomcat-7.0.30binsetenv.bat
, содержащих:
set "CLASSPATH=%CLASSPATH%;%CATALINA_HOME%libmysql-connector-java-5.1.14-bin.jar"
затем код, в моем случае:
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/database_name", "root", "");
работает нормально.
Я запускаю Tomcat 7 в Eclipse с Java 7 и использую драйвер jdbc для MSSQL sqljdbc4.сосуд.
при запуске кода за пределами tomcat, из автономного приложения java, это сработало просто отлично:
connection = DriverManager.getConnection(conString, user, pw);
однако, когда я попытался запустить тот же код внутри Tomcat 7, я обнаружил, что могу заставить его работать, только сначала зарегистрировав драйвер, изменив вышеизложенное на это:
DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver());
connection = DriverManager.getConnection(conString, user, pw);
добавить артефакт из maven.
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
использование:
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
System.out.println("Registro exitoso");
} catch (Exception e) {
System.out.println(e.toString());
}
DriverManager.getConnection(..
2
автор: Joan Payano Camacho
Бро, вы также можете написать код, как показано ниже:
import java.sql.*;
import java.io.*;
public class InsertDatabase {
public static void main(String[] args) {
// TODO Auto-generated method stub
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection(
"jdbc:mysql://localhost:3306/Maulik","root","root");
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from Employee");
while(rs.next())
System.out.println(rs.getInt(1)+" "+rs.getString(2)+" "+rs.getString(3));
con.close();
}
catch(Exception e)
{
System.out.println(e);
}
}
}
Если вы используете netbeans, вы должны добавить драйвер JDBC Mysql в список библиотек проекта, в свойствах вашего проекта
У меня также была та же проблема некоторое время назад, но я решил эту проблему.
для этого исключения могут быть разные причины.
И один из них может заключаться в том, что банка, которую вы добавляете в свою папку lib, может быть старой.
попробуйте выяснить последняя версия mysql-connector-jar и добавьте это в свой путь к классам.
Это может решить вашу проблему. Моя была решена вот так.
большую часть времени это происходит потому, что два mysql-connector-java-3.0.14-production-bin.файл jar.
Один в папке lib tomcat, а другой в пути к классам проекта.
просто попробуйте удалить mysql-connector-java-3.0.14-production-bin.jar из папки lib.
таким образом, это работает для меня.
из того, что я заметил, Может быть две причины для этого исключения:
(1)имя вашего водителя написано неправильно.
(2)драйвер не был должным образом связан с проектом Java
Шаги для выполнения в Eclipse:
(1)Создайте новый проект Java.
(2)скопируйте файл jar разъем
(3)щелкните правой кнопкой мыши на проекте Java и вставьте его туда.
(4)щелкните правой кнопкой мыши на проекте Java — > свойства — >путь сборки Java — >библиотеки — > добавить Jar — >выберите проект ur(выберите файл jar из раскрывающийся список) и нажмите ok.
решение простое.
убедитесь, что соединитель базы данных может быть достигнут вашим classpath, когда под управлением (не компилируется) программа, например:
java -classpath .;c:pathtomysql-connector-java-5.1.39.jar YourMainClass
кроме того, если вы используете старую версию Java (pre JDBC 4.0), прежде чем делать DriverManager.getConnection
эта строка требуется:
Class.forName("your.jdbc.driver.TheDriver"); // this line is not needed for modern Java
при разработке с использованием Ubuntu (Xubuntu 12.04.1) мне «пришлось» сделать следующее:
используя
Eclipse Juno (загружено, не установлено через программный центр),
Tomcat 7 (загруженный в пользовательский каталог пользователя) также добавлен как сервер в Eclipse,
Динамический веб-проект с сервлетом 3.0,
Сервер MySQL на localhost настроен и протестирован с помощью пользователя и пароля (обязательно проверьте)
MySQL драйвер разъема 5.1.24 jar,
Я «имел», и я повторяю «имел», нам класс.Загрузить («com.для MySQL.интерфейс jdbc.Driver») оператор вместе с добавлением драйвера соединителя.jar должен быть в папке lib веб-проекта, чтобы он работал в этой ситуации.
важно!!: после копирования драйвера.jar to the lib убедитесь, что вы обновили свой проект в Eclipse перед запуском сервлета через Tomcat.
Я попытался добавить файл jar драйвера соединителя через Путь сборки с и без ClassLoad, но это не сработало!
надеюсь, это поможет кому-нибудь начать разработка с этой конкретной ситуацией: сообщество Java предоставляет «много» документации, но есть так много переменных, что его трудно охватить все из них, и это делает вещи очень трудными для нового парня.
Я думаю, если бы кто-нибудь мог объяснить, почему класс.Нагрузка требуется здесь (в этой ситуации), это было бы полезно.
наслаждайтесь
поскольку никто не дал этого ответа, я также хотел бы добавить, что вы можете просто добавить файл драйвера jdbc (mysql-connector-java-5.1.27-bin.jar
в моем случае) в папку lib вашего сервера(Tomcat в моем случае). Перезапустите сервер и он должен работать.
-
поставить mysql-connector-java-5.0.8-bin.банку в $CATALINA_HOME/lib в
-
проверьте наличие опечатки в url-адресе соединения, например
«jdbc: mysql: / / localhost:3306 / report «(«отчет» — это имя БД) - обязательно используйте имя машины(пример : localhost вместо ip-адреса (127.0.0.1))
добавьте класс драйвера в bootstrapclasspath. Проблема в java.язык SQL.DriverManager, который не видит драйверы, загруженные загрузчиками классов, отличными от загрузчика классов bootstrap.
из другого потока stackoverflow:
«во-вторых. Убедитесь, что у вас есть MySQL JDBC Driver aka Connector/J в пути к классам JMeter. Если нет-скачайте, распакуйте и отбросьте mysql-connector-java-x.xx.xx-bin.банку в папку JMeter /lib. Перезапуск JMeter потребуется, чтобы забрать библиотеку»
пожалуйста, убедитесь, что .jar-файл добавляется в папку lib.
0
автор: adrian filipescu
вы можете вставить банку в путь времени выполнения jboss, как это:
C:Useruserworkspacejboss-as-web-7.0.0.FinalstandalonedeploymentsMYapplicationEAR.ухотест.войнаWEB-INFlib
ca marche 100%
You can translate the question and the replies:
Tag too long
4 Answers
user
07-05-2018 12:40:10 -0400
Hi Team
Even i got the same error, while trying to add JDBC source as mysql5.5.
Please can anyone help me to solve this issue!!
Regards
Krishna
user
Edited on:
12-08-2020 12:33:02 -0400
Hello,
This issue comes up when there is a Java version mismatch. ‘52.0’ points back to Java SE 8 as a requirement to be run. Essentially, what is going on is that during compile time you are using a higher JDK than the JDK used at runtime.
To fix this, have the JDK and the JRE in JAVA point to the same version. Couple of ways I think you can do this:
1. Use the current Denodo Express version available -Denodo Express 6.0 (before any updates) uses JDK 1.7, while the current Denodo Express (7.0) uses JDK 1.8.
2. On the Denodo Platform Control Center for 6.0, click on Configure at the right, and click ‘edit’ to change the Java Virtual Machine the platform uses to the Java 1.8 path on your machine.
Hope this makes sense and I hope this helps!
Denodo Team
18-07-2018 11:32:38 -0400
To add to the previous answer, I was connecting to a Microsoft SQL Server, using the Downloaded «mssql-jdbc-7.0.0» set of files. I had to add a new JVM with path: C:Program Files (x86)Javajre1.8.0_161
user
27-08-2018 13:24:35 -0400