所以我有webapp的第一步,有类医生,我想执行一些操作,如查看全部,插入,删除等:
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
以下是我的界面Service中的一种方法的实现。它们与适当的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()});
这是我试图称呼它的主要部分。该程序甚至没有尝试进入该方法,它没有在调试中出现并转移到我在main中尝试的下一个方法,查看all,哪个有效。据推测,我没有正确调用该方法,并尝试多次重写所有部分。帮助?!
Doctor test = new Doctor(17,"jack", "sparrow");
service.insertUpdateDoctor(test);
答案 0 :(得分: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()));
}
希望它可以帮到你。