Пример, как в сервлете подключиться и запросить данные из базы через JDBC.
Объект с данными:
package org.javaee7.jpa.nativesql;
public class Goods {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Goods(String name){
this.name = name;
}
}
Сервлет, где идет подключение и вывод результата:
package org.javaee7.jpa.nativesql;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.sql.DataSource;
import javax.inject.Inject;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(urlPatterns = {"/TestServlet"})
public class TestServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String sql = "select name from goods";
ArrayList goodsList = new ArrayList();
try {
InitialContext initialContext = new InitialContext();
//получаем источник данных
DataSource dataSource = (DataSource)initialContext.lookup("jdbc/FirebirdResource");
//получаем соединение
Connection connection = dataSource.getConnection();
//приготавливаем запрос
PreparedStatement preparedStatement = connection.prepareStatement(sql);
//получаем результат запроса
ResultSet resultSet = preparedStatement.executeQuery();
while(resultSet.next()){
goodsList.add(new Goods(resultSet.getString("name")));
}
} catch (NamingException | SQLException ex) {
Logger.getLogger(TestServlet.class.getName()).log(Level.SEVERE, null, ex);
}
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
out.println("");
out.println("");
out.println("Servlet TestServlet");
out.println("");
out.println("");
out.println("Servlet TestServlet at " + request.getContextPath() + "");
for(Goods g: goodsList){
out.println(g.getName() + " ");
}
out.println("");
out.println("");
}
}
|