简体   繁体   English

JdbcTemplate.update不会更新我的数据库

[英]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. 在我的.jsp文件中,我正在调用一个对象,该对象应该使用JdbcTemplate.update更新数据库。 I'm using Spring MVC framework, tomcat and mySql. 我正在使用Spring MVC框架,tomcat和mySql。 Thank you for any help. 感谢您的任何帮助。

Code from my .jsp file: 我的.jsp文件中的代码:

 <% FileDataDAO fileDataDAO = new FileDataDAO();

          fileDataDAO.test();

 %>

Code within my .java file: 我的.java文件中的代码:

@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 daoContext.xml文件

<?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. 您创建了FileDataDAO fileDataDAO = new FileDataDAO(),但是您使用了自动装配。 You need to get your instance from the contexte (spring, CDI...) 您需要从上下文中获取实例(spring,CDI ...)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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