简体   繁体   中英

JdbcTemplate.update doesn't update my database

Within my .jsp file i'm calling an object that is suppose to update my database using JdbcTemplate.update. I'm using Spring MVC framework, tomcat and mySql. Thank you for any help.

Code from my .jsp file:

 <% FileDataDAO fileDataDAO = new FileDataDAO();

          fileDataDAO.test();

 %>

Code within my .java file:

@Component("fileDataDao")
public class FileDataDAO {

private JdbcTemplate jdbc;
private DataSource dataSource;

public FileDataDAO() {}

@Autowired
public void setDataSource(DataSource dataSource) {

    this.dataSource = dataSource;
    jdbc = new JdbcTemplate(dataSource);

}
public void test(){

    String sql = "INSERT INTO myguests(id) VALUES(?)";
    jdbc.update(sql,5);
}
}

daoContext.xml file

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:jee="http://www.springframework.org/schema/jee"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans.xsd
         http://www.springframework.org/schema/context
         http://www.springframework.org/schema/context/spring-context.xsd
         http://www.springframework.org/schema/jee 
         http://www.springframework.org/schema/jee/spring-jee.xsd">


   <context:component-scan base-package="com.springapp.mvc.dao">
          <context:exclude-filter type="annotation" 
             expression="org.springframework.stereotype.Controller"/>
   </context:component-scan>

   <jee:jndi-lookup jndi-name="jdbc/TestDB" id="dataSource"
          expected-type="javax.sql.DataSource"/>


 </beans>

Specific error:

    org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/pages/home.jsp at line 54

    51: 
    52:           <% FileDataDAO fileDataDAO = new FileDataDAO();
    53: 
    54:     fileDataDAO.test();
    55: 
    56: %>
    57: 


    Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:574)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:172)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1228)
org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1011)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:955)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857)
javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

You made a FileDataDAO fileDataDAO = new FileDataDAO() but you use Autowired. You need to get your instance from the contexte (spring, CDI...)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM