Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在spring MVC 4中插入约束外键_Java_Spring_Spring Mvc_Mariadb - Fatal编程技术网

Java 在spring MVC 4中插入约束外键

Java 在spring MVC 4中插入约束外键,java,spring,spring-mvc,mariadb,Java,Spring,Spring Mvc,Mariadb,我有如下两列的表格 Field | Type | Null | Key | Default | Extra | +---------------+---------+------+-----+---------+----------------+ | hakemus_id | int(11) | NO | PRI | NULL | auto_increment | | fk_duuni_id | int(11) | NO | MU

我有如下两列的表格

 Field         | Type    | Null | Key | Default | Extra          |
+---------------+---------+------+-----+---------+----------------+
| hakemus_id    | int(11) | NO   | PRI | NULL    | auto_increment |
| fk_duuni_id   | int(11) | NO   | MUL | NULL    |                |
| fk_ehdokas_id | int(11) | NO   | MUL | NULL    |               |
我在Dao类中有这样的insert方法

public void insertHakemus(Hakemus hakemus) {
        String sql="insert into hakemus(fk_duuni_id, fk_ehdokas_id) values(?,?)";
        int ehdokas_id= hakemus.getEhdokas_id();
        int duuni_id = hakemus.getDuuni_id();
        Object[] ob = new Object[]{duuni_id,ehdokas_id};
        jdbcTemplate.update(sql, ob);

    }
在控制器中,我通过使用注释@RequestParam从视图中获取duuni_id和ehdokas_id,从视图中获取参数

@RequestMapping(value="sendCV.do", method=RequestMethod.POST)
    public String receiveCV(@RequestParam(value="duuni_id") Integer duuni_id,@RequestParam(value="ehdokas_id") Integer ehdokas_id, @ModelAttribute(value="ehdokas") EhdokasImpl ehdokas, Model model){
        Hakemus hakemus = new HakemusImpl();
        hakemus.setEhdokas_id(ehdokas_id);
        hakemus.setDuuni_id(duuni_id);
        System.out.println(duuni_id);
        System.out.println(ehdokas_id);
        if(!ehdokas_id.equals(0) && !duuni_id.equals(0)){
            ehdokasdao.editEhdokas(ehdokas);
            hakemusdao.insertHakemus(hakemus);
            return "redirect:tyopaikat.do";
        }
我用两台系统打印机检查duuni_id和ehdokas_id是否为空,我得到的结果是可以的。这意味着参数的值成功地从视图传递到控制器。但当我运行这段代码时,在insertHakemus()方法中出现了错误java.lang.NullPointerException,有人有什么想法吗

堆栈跟踪

Apr 13, 2016 7:10:16 PM org.apache.catalina.core.StandardContext reload
INFO: Reloading Context with name [/vjb.de] is completed
6
1
Apr 13, 2016 7:12:16 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [vietjob] in context with path [/vjb.de] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerException
    at vjb.de.vietjob.dao.hakemusDAO.HakemusDaoImpl.insertHakemus(HakemusDaoImpl.java:29)
    at vjb.de.vietjob.controller.HakemusController.receiveCV(HakemusController.java:114)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:214)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:748)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:945)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:931)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:833)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:644)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:807)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:537)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1081)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)
    at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
豆类

package vjb.de.vietjob.bean.hakemus;

public class HakemusImpl implements Hakemus {
      private int hakemus_id;
      private int duuni_id;
      private int ehdokas_id;
    public int getHakemus_id() {
        return hakemus_id;
    }
    public void setHakemus_id(int hakemus_id) {
        this.hakemus_id = hakemus_id;
    }
    public int getDuuni_id() {
        return duuni_id;
    }
    public void setDuuni_id(int duuni_id) {
        this.duuni_id = duuni_id;
    }
    public int getEhdokas_id() {
        return ehdokas_id;
    }
    public void setEhdokas_id(int ehdokas_id) {
        this.ehdokas_id = ehdokas_id;
    }


}

请检查您的jdbctemplate,它可能为空。

它不是空的bro{2016年4月13日7:21:55 PM org.apache.catalina.core.StandardContext重新加载信息:重新加载名为[/vjb.de]的上下文已完成6 1 vjb.de.vietjob.dao.ehdokasDAO。EhdokasDaoImpl@365d1de8}Hakemus Hakemus=新的hakemusiml();这不应该是因为Hakemus Hakemus=new Hakemus();对不起,我应该仔细看看你的日志。Dao不能为nullHakemusImpl是接口类Hakemus的类实现,不能像您所说的那样执行。从您发布的代码中,最有可能为null的引用是jdbcTemplate。请说明您是如何配置和注入jdbcTemplate的