Intereting Posts
Комбинация фигур в Java? Общая команда javadoc, которая всегда генерирует все javadocs в данном дереве? получить количество счетчиков HashMap Элемент Cast в Java Для каждого утверждения Как хранятся в памяти значения HashTable и HashMap? Различные способы написания singleton в Java повторный запрос пользователя после недопустимого ввода в java Java: Загрузите одну и ту же динамическую библиотеку в два streamа (оба streamа в одной JVM) Как изменить снимок, показанный последним списком приложений? Java 8 Streams: почему Collectors.toMap ведет себя по-разному для дженериков с помощью подстановочных знаков? В JSF: Каков наилучший способ предотвратить фальсификацию формы? Выберите «лучшие» или более знакомые технологии для нового проекта? Невозможно преобразовать текущие данные canvasа в изображение в java enum реализация внутри интерфейса – Java Клиент JMS Solaris подключается к проблеме безопасности Webgt 11g t3s

Исключение базы данных Mysql

Исключение в streamе «main» java.lang.Error: проблема неразрешенной компиляции: тип несоответствия: невозможно преобразовать из java.sql.Statement в com.mysql.jdbc.Statement

Я новичок в java. Я пытаюсь использовать базу данных mysql. Я загрузил файл mysql-connector-java-5.1.23-bin.jar из mysql.com, и я добавил этот файл jar в мой путь сборки моего проекта, но есть ошибка в следующем коде Exception в streamе «main» java.lang.Error: проблема неразрешенной компиляции: несоответствие типов: невозможно преобразовать из java.sql.Statement в com.mysql.jdbc.Statement


package com.example.demo; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import com.mysql.jdbc.Connection; import com.mysql.jdbc.Statement; public class DBConnect { private static final String userName = "root"; private static final String userpwd = "sverma"; private static final String CONN_STR = "jdbc:mysql://localhost:3306/phpweb_db"; public static void main(String[] args) throws SQLException { Connection conn = null; Statement st = null; ResultSet rs = null; try { DriverManager.getConnection(CONN_STR, userName, userpwd); st=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); rs = st.executeQuery("select * from user"); rs.last(); System.out.println("No of rows: " + rs.getRow()); // System.out.println("Connected Successfully..."); } catch (SQLException e) { System.err.println(e); } finally { if (rs != null) { rs.close(); } if (st != null) { st.close(); } if (conn != null) { conn.close(); } } } 

}


Неверные classы

 import com.mysql.jdbc.Connection; import com.mysql.jdbc.Statement; 

должно быть

 import java.sql.Connection; import java.sql.Statement; 

Фактически, java отделяет все от конкретного механизма базы данных. Никогда не нужно импортировать classы MySQL (или ProgressSQL или …).

Чтобы эти classы были доступны во время выполнения, первая вещь после try , прежде чем получить соединение, будет:

 Class.forName("com.mysql.jdbc.Driver"); 

Этот метод позволит читать все строки из файла конфигурации и писать независимый от базы код.


Отсутствует: conn = …

 conn = DriverManager.getConnection(CONN_STR, userName, userpwd); 
 package com.example.demo; import java.sql.*; public class DBConnect { private static final String userName = "root"; private static final String userpwd = "sverma"; private static final String CONN_STR = "jdbc:mysql://localhost:3306/phpweb_db"; public static void main(String[] args) throws SQLException { Connection conn; Statement st; ResultSet rs; try { Class.forName("com.mysql.jdbc.Driver"); DriverManager.getConnection(CONN_STR, userName, userpwd); st=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); rs = st.executeQuery("select * from user"); rs.last(); System.out.println("No of rows: " + rs.getRow()); // System.out.println("Connected Successfully..."); } catch (SQLException e) { System.err.println(e); } finally { if (rs != null) { rs.close(); } if (st != null) { st.close(); } if (conn != null) { conn.close(); } } }