2016-09-21 5 views
0

Я перепроведение моего вопросаSQL DataSource Исключение

У меня есть объект базы данных, где соединение с базой данных может быть установлено через объект базы данных, который установлен в качестве контекста параметра.

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> 

Но его метание Exception

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

Это потому, что pass, а не DataSource.

Я не вижу действительной причины для подключения к БД в JSP. Но ради обсуждения вы можете сделать это:

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 для объяснения, я понял разницу от ваших explanation.is есть ли другой способ я могу использовать этот объект БД в JSP и установить соединение – Ramgopal

+0

вы не должны» t использовать объект DB в вашем JSP. JSP предназначен для рендеринга. Оставьте логику БД на сервере и передайте JSP только данные, которые необходимо предоставить. –