последние дни я пытался узнать, как получить доступ к базам данных mySQL через Java. Я могу загрузить драйвер и получить подключение к базе данных (по крайней мере, я так думаю, потому что я не получаю исключение там ..)java.sql.SQLException: база данных не выбрана - почему?
код:
import java.sql.*;
public class test
{
public static void main(String[] args)
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println("driver loaded...");
}
catch(ClassNotFoundException e){
System.out.println("Error in loading the driver..."+e);
System.exit(0);
}
try
{
Connection dbConnection= DriverManager.getConnection("jdbc:odbc:test","root","password");
System.out.println("Connection successful...");
Statement stmt = dbConntection.createStatement();
stmt.executeUpdate("create table Accounts (name char(20))");
}
catch(SQLException e)
{
System.out.println("database-ConnectionError: "+e);
System.exit(0);
}
}
}
Когда Я исполняю его, он говорит:
driver loaded...
Connection successful...
database-ConnectionError: java.sql.SQLException: [MySQL][ODBC 5.2(w) Driver][mysqld-5.5.31]No database selected
Я действительно не знаю эту проблему, потому что я думал, что выбрана база данных во время процесса «GetConnection» ....
я пытался выбрать базу данных путем добавления эта строка:
stmt.executeUpdate("use test;");
после создания заявления.
К сожалению, это не сработало, потому что у меня есть другое исключение, в котором говорится, что я должен проверить синтаксис. Я не понимаю, потому что в моей командной строке это работает просто отлично ... Я не знаю, можно ли использовать эти типы команд через Java, поэтому, если это не так, пожалуйста, простите мою ошибку.
Надеюсь, вы можете мне помочь, и я не пропустил решение во время своего собственного поиска!
Уже спасибо всем, кто отвечает и использует свое время на моих проблемах!
пс. Если я забыл отметить некоторые важные Infos (я не думаю, что я сделал), пожалуйста, спросите :)
редактировать: Я также пытался создать новую базу данных во время выполнения
stmt.executeUpdate("CREATE DATABASE test;");
это на самом деле работает, но база данных не будет выбрана ни ...
Как и в сторону: с водителем JDBC, вы не должны использовать такие команды, как 'использования 'для переключения между базами данных. Вместо этого вы должны использовать 'setCatalog' и/или' setSchema' (или указать базу данных в строке подключения). Использование 'use ' может привести к неправильному поведению драйвера. –