Jdbc模板crud操作

时间:2016-02-04 19:29:48

标签: java spring-mvc jdbc

所以我有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);

1 个答案:

答案 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()));
        }

希望它可以帮到你。