2016-02-04 2 views
1

Так что я первые шаги в веб-приложение, есть класс доктора, и я хочу, чтобы выполнить некоторые операции, такие как точки зрения все, вставка, удаление и т.д.:операции JDBC шаблон CRUD

public class Doctor { 
public String firstName; 
public String lastName; 
public int id; 

public Doctor(){ 
} 
public Doctor(int id, String first, String last){ 
setId(id); 
setFirstName(first); 
setLastName(last); 
} 
// getters and setters 

Вот реализация один из методов моего интерфейса. Все они почти одинаковы с соответствующими SQL-запросами. Я попробовал несколько различных учебников.

public class DAOImpl implements DAO{ 

public void insertUpdateDoctor(Doctor doctor){ 

    String sql = "INSERT INTO doc_flight.docflight_doctors(id, first_name,last_name)" + "Values(?,?,?)";    



    jdbcTemplateObject.update(sql,new Object[]{doctor.getId(),doctor.getFirstName(),doctor.getLastName()}); 

Heres the part in main, где я пытаюсь назвать это. Программа даже не пытается ввести метод, она не возникает при отладке и переходит к следующему методу, который я пытаюсь использовать в основном, просматривать все, что работает. Предположительно, я не называю метод правильно и несколько раз пытался переписать все части. Помогите?!

Doctor test = new Doctor(17,"jack", "sparrow"); 
service.insertUpdateDoctor(test); 
+0

В режиме отладки, если вы поместите точку останова в строке 'service.insertUpdateDoctor (test);' и входите в нее, куда она идет? В каком типе он показывает «сервис»? Это «DAOImpl»? –

+0

Когда я помещаю точку останова и выполняю все основные шаги, он просто пропускает эту строку. Когда я проверяю свойства контрольной точки, это тип Main App (где главный аргумент) –

+0

Вы, вероятно, сэкономите много времени, используя Spring Data JPA –

ответ

1

Проблема сама по себе для меня не совсем понятна.

Если проблема заключается в том, что при вызове этого:

Doctor test = new Doctor(17,"jack", "sparrow"); 
service.insertUpdateDoctor(test); 

Среда выполнения не проникая внутрь insertUpdateDoctor, просто проверить, как вы инстанцировании объект службы

, если проблема заключается в том, что это не так правильно выполнив инструкцию sql, попробуйте использовать PreparedStatement (это хорошая практика), сделав что-то вроде:

 String connectionStr = StringUtils.format("INSERT INTO %s.docflight_doctors(id, first_name,last_name) Values(?,?,?)", this.databaseName); 
     try (Connection connection = this.dataSource.getConnection(); 
      PreparedStatement preparedStatement = connection.prepareStatement(connectionStr)) { 
      preparedStatement.setInt(1, doctor.getId()); 
      preparedStatement.setString(2, doctor.getFirstName()); 
      preparedStatement.setString(3, doctor.getLastName()); 
      preparedStatement.execute(); 
      connection.commit(); 
     } catch (Exception ex) { 
      this.logger.error(String.format("Error when inserting: %s", ex.toString())); 
     } 

Надеюсь, это может вам помочь.

Смежные вопросы