При попытке запустить метод возникает ошибка:
java.sql.SQLException: Column 'Rock' not found.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1093)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5488)
at DAO.MusicTypeDAO.getAll(MusicTypeDAO.java:108)
at DAO.Main.main(Main.java:18)
Код метода:
public List<MusicType> getAll() {
String requestMysql = "SELECT * FROM music_type;";
List<MusicType> musicTypes = new ArrayList();
PreparedStatement ps;
try {
ConnectionUtils.getConnection().setAutoCommit(false);
ps = ConnectionUtils.getConnection().prepareStatement(requestMysql);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
MusicType musicType = new MusicType(rs.getInt("id"), rs.getString(rs.getString("type_name")));
musicTypes.add(musicType);
}
ConnectionUtils.getConnection().commit();
} catch (SQLException e) {
e.printStackTrace();
}
return musicTypes;
}
ДБ:
CREATE database if not exists `users_and_music` ;
USE users_and_music;
CREATE TABLE address (
id INT PRIMARY KEY AUTO_INCREMENT,
country VARCHAR(256),
street VARCHAR(256),
zip INT
);
CREATE TABLE role (
id INT PRIMARY KEY AUTO_INCREMENT,
role_name VARCHAR(256)
);
CREATE TABLE music_type (
id INT PRIMARY KEY AUTO_INCREMENT,
type_name VARCHAR(256)
);
CREATE TABLE user (
id INT NOT NULL AUTO_INCREMENT,
role_id INT NOT NULL,
firstName VARCHAR(15) DEFAULT NULL,
lastName VARCHAR(15) DEFAULT NULL,
login VARCHAR(15) DEFAULT NULL,
userpassword VARCHAR(20) DEFAULT NULL,
age SMALLINT(3) DEFAULT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (role_id)
REFERENCES role (id)
);
CREATE TABLE user_music_type (
user_id INT NOT NULL,
music_type_id INT NOT NULL,
PRIMARY KEY(user_id,music_type_id ),
FOREIGN KEY (user_id)
REFERENCES user (id),
FOREIGN KEY (music_type_id)
REFERENCES music_type (id)
);
Судя по стек-трейсу, исключение генерируется в этой строке:
MusicType musicType = new MusicType(rs.getInt("id"), rs.getString(rs.getString("type_name")));
А именно из-за этого:
rs.getString(rs.getString("type_name"))
Здесь Вы получаете значение поля type_name
, а затем пытаетесь получить значение поля с именем, которое вернуло rs.getString("type_name")
, которого, очевидно, не существует.
В общем, попробуйте заменить эту строчку на вот эту:
MusicType musicType = new MusicType(rs.getInt("id"), rs.getString("type_name"));
Виртуальный выделенный сервер (VDS) становится отличным выбором
Читаю книгу1 "Технологии java2",выполняю задания по текстовым компонентам swing и отображением HTMLВообщем при компиляции программы в intellij idea
Нужно вернуть json в котором находятся ссылки 5000+ файловCоздаю модель