JdbcTemplate INSERT вопрос запроса - PullRequest
0 голосов
/ 04 сентября 2018

Я построил DAO для моего запроса INSERT. Код:

DAO

public class EmployeeDao {
    JdbcTemplate template;  
    public void setTemplate(JdbcTemplate template) {  
        this.template = template;  
    }  
    public int insert(EmployeeInfo emp){

        String sql = "insert into employee VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
        int i=template.update(sql, emp.getFirstName(), emp.getMiddleName(), emp.getLastName(), emp.getEmail(), emp.getGender(), emp.getDob(), emp.getAddress1(), emp.getAddress2(), emp.getEmpID());

        return i;
    }
}

Контроллер:

@Autowired  
EmployeeDao dao;
@RequestMapping("/addresult")  
public ModelAndView addResult(HttpServletRequest req,HttpServletResponse res) {

    String fname = req.getParameter("FirstName");
    String mname = req.getParameter("MiddleName");
    String middlename;
    if(mname!="null"&&mname.trim()!=""){
        middlename=mname;
    }
    else
    {
        middlename="-";
    }
    String lname = req.getParameter("LastName");
    //int empID = Integer.getInteger(req.getParameter("empID")).intValue();
    String empid = req.getParameter("empID");
    int empID = Integer.parseInt(empid);
    String email = req.getParameter("Email");
    String gender = req.getParameter("gender");
    //Date dob = Date.valueOf(req.getParameter("DOB"));
    LocalDate dob = LocalDate.parse(req.getParameter("DOB")); 
    String addr1 = req.getParameter("address1");
    String addr2 = req.getParameter("address2");
    EmployeeInfo emp = new EmployeeInfo(fname,middlename,lname,email,gender,dob,addr1,addr2,empID);

    int ret = dao.insert(emp);

    if(ret==0){
        return new ModelAndView("EmployeeAddResult","mess","Success");
    }
    else
    {
    return new ModelAndView("EmployeeAddResult","mess","hi");
    }
}  

Когда я запускаю свое веб-приложение, запрос INSERT приводит к ошибке:

enter image description here

Ошибка обработки запроса; вложенное исключение org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; исключение SQLException для SQL [вставка] в ЗНАЧЕНИЯ сотрудника (?,?,?,?,?,?,?,?,?)]; Состояние SQL [XJ021]; код ошибки [20000]; Тип не поддерживается .; вложенное исключение java.sql.SQLException: тип не поддерживается.

В чем причина этой проблемы?

1 Ответ

0 голосов
/ 04 сентября 2018

Вы должны использовать java.sql.Date вместо LocalDate, вместо этого добавить следующую дату:

Date date = Date.valueOf(dob); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...