SQL DataSource异常

时间:2016-09-21 17:44:59

标签: java jsp jstl

我正在重新发布我的问题

我有一个数据库对象,可以通过数据库对象建立数据库连接,数据库对象设置为上下文参数。

    ServletContext s=e.getServletContext();    
    Class.forName("com.mysql.jdbc.Driver");
    Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/job_portal","root","root");
    s.setAttribute("db_connect",con);

我想在JSP页面中使用数据库对象使用Sql taglib连接数据库并存储数据

<sql:update dataSource="${applicationScope.db_connect}" >
  insert into linkedin_table values(?,?)
  <sql:param value="${param.Reference_Person}" />
  <sql:param value="${param.Reference_Person_Position}" />
  </sql:update>

但它抛出异常

javax.servlet.ServletException: javax.servlet.jsp.JspException: 'dataSource' is neither a String nor a javax.sql.DataSource
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:911)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:840)

1 个答案:

答案 0 :(得分:0)

那是因为你传递了Connection而不是DataSource。

我没有看到在JSP中连接到DB的正当理由。但为了讨论起见,你可以这样做:

DataSource dataSource = new BasicDataSource();

dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUsername("root");
dataSource.setPassword("root");
dataSource.setUrl("jdbc:mysql://localhost:3306/job_portal");

ServletContext s=e.getServletContext();  
s.setAttribute("db_connect",con);