我有一个关于电影的数据库,我想显示电影分配的类型的名称。
-- 已编辑 --
出现此错误:
未为 String 类型定义方法 getString(String)
代码:
public DefaultTableModel tableRegistros() {
DefaultTableModel model = null;
sSQL = "SELECT PELICULAS.*, "
+ "GENEROS.nombre AS nombreGenero, "
+ "COMPANIAS.nombre AS nombreCompania "
+ "FROM PELICULAS "
+ "INNER JOIN COMPANIAS ON PELICULAS.id_compania = COMPANIAS.id_compania "
+ "INNER JOIN PELICULAS_GENEROS ON PELICULAS.id_pelicula = PELICULAS_GENEROS.id_pelicula "
+ "INNER JOIN GENEROS ON PELICULAS_GENEROS.id_genero = GENEROS.id_genero";
// Java 7 try-with-resources
try (Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sSQL)) {
String [] titulosColumnas = {"ID", "Título", "Año", "Minutos", "Sinopsis", "Compañía", "Género"};
ArrayList<Object[]> registros = new ArrayList<Object[]>();
while (rs.next()) {
registros.add(new Object[] {
rs.getInt("id_pelicula"),
rs.getString("titulo"),
rs.getInt("anoLanzamiento"),
rs.getInt("longitudMinutos"),
rs.getString("sinopsis"),
rs.getString("nombreCompania")
rs.getString("nombreGenero") // Error: The method getString(String) is undefined for the type String
});
}
model = new DefaultTableModel(registros.toArray(new Object[0][]), titulosColumnas);
} catch (SQLException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, "SQLException:\n" + e, "Error: tableRegistros()", JOptionPane.ERROR_MESSAGE);
}
return model;
}
这个想法是:
- 获取公司名称而不是 company_id。
- 获取电影分配的所有类型的名称。
我在查询中有什么问题?我是 INNER JOIN 的新手。
提前致谢。
试试这样:
成绩:
由于图像的原因,我假设它们是大写的表名。
当你必须从电影中寻找那个
titulo
时,你可能会遇到问题,我不知道你是否意识到你调用titutlo
了那个专栏。