【发布时间】:2014-05-30 02:47:11
【问题描述】:
我在尝试对我的 Java 代码执行 DAO 方法时收到此错误,说我的 sql sintax 中存在错误。当我在 MySQL 上手动执行此操作时,显然没有任何问题。
错误:
Informações: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'as p inner join usuario as u on p.usuario = u.idusuario where p.idprestador=2' at line 1
DAO 方法:
public Prestador listarPrestadorDetalhe(int idprestador) {
try {
Connection conexao = Conexao.getConexao();
PreparedStatement pstmt = conexao.prepareStatement("select p.telefone, p.celular, u.email"
+ "from prestador as p inner join usuario as u on p.usuario = u.idusuario where p.idprestador=?");
Prestador prestador = new Prestador();
pstmt.setInt(1, idprestador);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
prestador.usuario = new Usuario();
prestador.setIdprestador(rs.getInt("idprestador"));
prestador.setTelefone(rs.getString("telefone"));
prestador.setCelular(rs.getString("celular"));
prestador.usuario.setEmail(rs.getString("email"));
}
rs.close();
pstmt.close();
return prestador;
} catch (ClassNotFoundException ex) {
System.out.println(ex);
} catch (SQLException sql) {
System.out.println(sql);
}
return null;
}
SQL 脚本
select p.telefone, p.celular, u.email
from prestador as p inner join usuario as u on p.usuario = u.idusuario
where p.idprestador=2
【问题讨论】:
-
我认为您需要在
u.email和from之间留一个空格
标签: java mysql jdbc inner-join