2017-02-10 2 views
-1

Я искал повсюду и несколько книг и ничего простого не нашел. У меня есть SQL, как:Весна java для jsp - multi table select

select 
a.id,b.name,b.points,d.name,d.second_name,c.id 
from my_courses a 
left join course b on a.idcourse=b.id 
left join student c on a.idstudent=c.id 
left join human d on c.idhuman=d.id 

и я хотел бы выполнить (в Java) и дисплей (в JSP в таблице) несколько других случайных SQL без ДАО, POJO и другие классы. Возможно ли какое-то простое решение, например, написать sql, выполнить sql, получить, может быть, массив или что-то заполненное sql-результатом и отправить его в jsp для отображения в таблице? Большое спасибо. Я использую java, spring, jsp в наборе инструментов весны.

+0

На данный момент кажется, что я искал, как «SqlRowSet foo = jdbcTemplate.queryForRowSet (sql);». –

ответ

0

Перед тем, как прочитать следующий ответ, пожалуйста, ясно:

  • Вы должны в основном НИКОГДА не смеси презентационного слоя/доступа к данным слоя вместе. Вы окажетесь в хаосе/слезах.

Но я нашел решение, которое вы можете найти здесь подробно:

data-acces in presentation layer

А вот пример кода из этого источника:

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%> 
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver" 
url="jdbc:mysql://localhost/TEST" 
user="root" password="pass123"/> 

<sql:query dataSource="${snapshot}" var="result"> 
SELECT * from Employees; 
</sql:query> 

<table border="1" width="100%"> 
<tr> 
    <th>Emp ID</th> 
    <th>First Name</th> 
    <th>Last Name</th> 
    <th>Age</th> 
</tr> 
<c:forEach var="row" items="${result.rows}"> 
<tr> 
    <td><c:out value="${row.id}"/></td> 
    <td><c:out value="${row.first}"/></td> 
    <td><c:out value="${row.last}"/></td> 
    <td><c:out value="${row.age}"/></td> 
</tr> 
</c:forEach> 
</table> 

Обратите внимание, что я не рекомендую это. Это просто плохо! очень плохо!