У меня есть это:Создать временную таблицу в MySQL из Java
public static void createTemporaryTable() {
Statement s = null;
sentence = "CREATE TEMPORARY TABLE Book (ISBN int NOT NULL, " +
"title varchar(45), author varchar(45), price double, PRIMARY KEY (`ISBN`));";
try {
s = Conexion.getInstancia().createStatement();
s.executeUpdate(sentence);
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
s.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Тогда:
public class System {
public static void main(String[] args) {
SqlSentencesList.createTemporaryTable();
}
}
Но когда я исполню select * from Book
, MySQL говорит мне Book
таблица не существует. Я не получаю никаких сообщений об ошибках из java, поэтому таблица должна быть создана, но это не так.
Если я выполняю одно и то же предложение sql для создания временной таблицы непосредственно в mysql, он отлично работает.
Это мой Conexion
класс:
public class Conexion {
private static Connection conexion = null;
private Conexion() {
}
public static Connection getInstancia() {
if (conexion == null) {
try {
Class.forName("com.mysql.jdbc.Driver");
conexion = DriverManager.getConnection(
"jdbc:mysql://localhost/Esquema_VentaLibros","gustavo", "123581321");
} catch (SQLException sqlex) {
sqlex.printStackTrace();
} catch(ClassNotFoundException cnfex) {
cnfex.printStackTrace();
}
return conexion;
}
else {
return conexion;
}
}
}
Используете ли вы одного пользователя при попытке запроса непосредственно в MySQL и в своем приложении? –