2016-09-21 2 views
0

Ich reposting meine FrageSQL Datasource Exception

Ich habe ein Datenbankobjekt in der Datenbank-Verbindung kann über Datenbankobjekt festgelegt werden, die als Kontextparameter festgelegt ist.

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); 

Ich wollte das Datenbankobjekt in meiner JSP-Seite mit Hilfe von SQL taglib verwenden Datenbank zu verbinden und die Daten

<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> 

Aber seine werfen die Ausnahme

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) 

Antwort

0

, weil Sie ist Pass Verbindung, nicht DataSource.

Ich sehe keinen gültigen Grund zur Verbindung mit DB in JSP. Aber aus Gründen der Diskussion können Sie dies tun:

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); 
+0

Tanx für die erklären, ich den Unterschied von Ihrem explanation.is es eine andere Art und Weise verstand ich, dass DB-Objekt in JSP verwenden können, und stellen Sie eine Verbindung – Ramgopal

+0

Sie shouldn‘ t verwenden Sie DB-Objekt in Ihrer JSP überhaupt. JSP ist zum Rendern von Sachen. Belassen Sie die DB-Logik im Server und übergeben Sie nur die Daten an JSP, die für die Darstellung benötigt werden. –