Я разрабатываю приложение Roverfull Dropwizard на основе имеющегося здесь pdf-файла (http://it-ebooks.directory/book-1783289538.html). Я пробовал исследовать эту проблему и не нашел никого с той же проблемой, нести меня здесь, хотя я не слишком хорошо знаком с использованием @Bind или интерфейсов.Использование @Bind для Dropwizard API приводит к ошибке синтаксиса SQL
В любом случае у меня есть сервер MYsql, настроенный на моем компьютере, чтобы запросить различные значения из таблицы учеников моей базы данных SQL через браузер, я должен ввести localhost: 8080/students/[A номер]. Для реализации этого, говорится в документации, чтобы использовать интерфейс Object Access Database с помощью следующего кода:
public interface StudentsDAO {
@Mapper(StudentMapper.class)
@SqlQuery("select * from students where studentId = :studentId")
Student getStudentById(@Bind("studentId") int studentId);
}
Это используется мой класс studentResource со следующим кодом:
@Path("/students")
@Produces(MediaType.APPLICATION_JSON)
public class StudentResource {
private final StudentsDAO studentsDao;
public StudentResource(DBI jdbi) {
studentsDao = jdbi.onDemand(StudentsDAO.class);
}
@GET
@Path("/{studentId}")
public Response getStudent(@PathParam("studentId") int studentId) {
// retrieve information about the contact with the provided id
Student student = studentsDao.getStudentById(studentId);
return Response.ok(student).build();
}
...
Я проверил на моем сервере MYsql, который запускает «Select * from students, где studentId = 123» возвращает нужного ученика, но когда я делаю localhost: 8080/students/123, он вызывает следующую ошибку:
«У вас есть ошибка в вашем Синтаксис SQL; проверьте руководство, которое corr esponds к версии сервера MySQL для правого синтаксиса использовать вблизи «OPTION SQL_SELECT_LIMIT = DEFAULT» в строке 1"
линия, которая вызывает ошибку является:
Student student = studentsDao.getStudentById(studentId);
Это в классе studentResource, так что я предположим, что ошибка связана с чем-то в моем интерфейсе DAO ...
Спасибо за помощь!
Бинго! Я только что загрузил последний драйвер JDBC-коннектора с сайта Mysql, и он работал нормально, похоже, что тот, который поставляется с DropWizard, устарел ... – VivaLebowski