我正在重新发布我的问题
我有一个数据库对象,可以通过数据库对象建立数据库连接,数据库对象设置为上下文参数。
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)
答案 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);