Articoli

JSP con accesso SQL, Come gestire l’accesso a un DB sql in una Java Server Page

Qualora fosse necessario accedere a un RDBMS, con Java Server Page è possibile. In questo post andremo a vedere come accedere a un database SQL con JSP. Prima di iniziare con pagine JSP con accesso SQL, assicurati di avere una corretta configurazione dell’ambiente JDBC insieme a un database SQL.

Operazione SELECT

L’esempio seguente mostra come eseguire l’ istruzione SQL SELECT utilizzando JTSL nella programmazione JSP con accesso SQL. Consideriamo di utilizzare il driver ODBC di mysql

<%@ page import = "java.io.*,java.util.*,java.sql.*"%>
<%@ page import = "javax.servlet.http.*,javax.servlet.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix = "c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix = "sql"%>
 
<html>
   <head>
      <title>SELECT Operation in JSP PAGE</title>
   </head>

   <body>
      <sql:setDataSource var = "snapshot" driver = "com.mysql.jdbc.Driver"
         url = "jdbc:mysql://localhost/Sqlfromjsp"
         user = "root"  password = "pwd"/>
 
      <sql:query dataSource = "${snapshot}" var = "result">
         SELECT * from Countries;
      </sql:query>
 
      <table border = "1" width = "100%">
         <tr>
            <th>Contry ID</th>
            <th>Name</th>
            <th>Capital Town</th>
            <th>NumbResidents</th>
         </tr>
         
         <c:forEach var = "row" items = "${result.rows}">
            <tr>
               <td><c:out value = "${row.id}"/></td>
               <td><c:out value = "${row.name}"/></td>
               <td><c:out value = "${row.capital}"/></td>
               <td><c:out value = "${row.numbresidents}"/></td>
            </tr>
         </c:forEach>
      </table>
 
   </body>
</html>

La query implementata in questa pagina JSP con accesso SQL ci consente di leggere dalla tabella “Countries” l’elenco delle Nazioni con la capitale e gli abitanti della capitale.

Operazione INSERT

L’esempio seguente mostra come eseguire l’istruzione SQL INSERT utilizzando utilizzando JTSL nella programmazione JSP. Consideriamo di utilizzare il driver ODBC di mysql

<%@ page import = "java.io.*,java.util.*,java.sql.*"%>
<%@ page import = "javax.servlet.http.*,javax.servlet.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix = "c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix = "sql"%>
 
<html>
   <head>
      <title>JINSERT Operation in JSP PAGE</title>
   </head>
   
   <body>
      <sql:setDataSource var = "snapshot" driver = "com.mysql.jdbc.Driver"
         url = "jdbc:mysql://localhost/Sqlfromjsp"
         user = "root"  password = "pwd"/>
         <sql:update dataSource = "${snapshot}" var = "result">
         INSERT INTO Countries VALUES (99, 'Italy', 'Rome', 2873000);
      </sql:update>
 
      <sql:query dataSource = "${snapshot}" var = "result">
         SELECT * from Countries;
      </sql:query>
 
      <table border = "1" width = "100%">
         <tr>
            <th>Contry ID</th>
            <th>Name</th>
            <th>Capital Town</th>
            <th>NumbResidents</th>
         </tr>
         
         <c:forEach var = "row" items = "${result.rows}">
            <tr>
               <td><c:out value = "${row.id}"/></td>
               <td><c:out value = "${row.name}"/></td>
               <td><c:out value = "${row.capital}"/></td>
               <td><c:out value = "${row.numbresidents}"/></td>
            </tr>
         </c:forEach>
      </table>
 
   </body>
</html>

In questo esempio viene inserito un nuovo record con Country “Italy”, Capital “Rome” e numero di abitanti. Successivamente viene fatta una query dove si potrà vedere la nuova riga inserita.

Operazione DELETE

L’esempio seguente mostra come eseguire l’ istruzione SQL DELETE utilizzando JTSL nella programmazione JSP. Consideriamo di utilizzare il driver ODBC di mysql

Newsletter sull’Innovazione
Non perderti le notizie più importanti sull'Innovazione. Iscriviti per riceverle via e-mail.
<%@ page import = "java.io.*,java.util.*,java.sql.*"%>
<%@ page import = "javax.servlet.http.*,javax.servlet.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix = "c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix = "sql"%>
 
<html>
   <head>
      <title>DELETE Operation in JSP PAGE</title>
   </head>
   
   <body>
      <sql:setDataSource var = "snapshot" driver = "com.mysql.jdbc.Driver"
         url = "jdbc:mysql://localhost/Sqlfromjsp"
         user = "root"  password = "pwd"/>
 
      <c:set var = "countryId" value = "99"/>
 
      <sql:update dataSource = "${snapshot}" var = "count">
         DELETE FROM Countries WHERE Id = ?
         <sql:param value = "${countryId}" />
      </sql:update>
 
      <sql:query dataSource = "${snapshot}" var = "result">
         SELECT * from Countries;
      </sql:query>
 
      <table border = "1" width = "100%">
         <tr>
            <th>Contry ID</th>
            <th>Name</th>
            <th>Capital Town</th>
            <th>NumbResidents</th>
         </tr>
         
         <c:forEach var = "row" items = "${result.rows}">
            <tr>
               <td><c:out value = "${row.id}"/></td>
               <td><c:out value = "${row.name}"/></td>
               <td><c:out value = "${row.capital}"/></td>
               <td><c:out value = "${row.numbresidents}"/></td>
            </tr>
         </c:forEach>
      </table>
 
   </body>
</html>

In questo esempio viene cancellato un record nella tabella Country, e in particolare “Italy”, Capital “Rome” e numero di abitanti. Successivamente viene fatta una query dove si potrà vedere che la riga è stata cancellata.

Operazione UPDATE

L’esempio seguente mostra come eseguire l’ istruzione SQL UPDATE utilizzando JTSL nella programmazione JSP. Consideriamo di utilizzare il driver ODBC di mysql

<%@ page import = "java.io.*,java.util.*,java.sql.*"%>
<%@ page import = "javax.servlet.http.*,javax.servlet.*" %>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c"%>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/sql" prefix = "sql"%>
 
<html>
   <head>
      <title>UPDATE Operation in JSP PAGE</title>
   </head>
   
   <body>
      <sql:setDataSource var = "snapshot" driver = "com.mysql.jdbc.Driver"
         url = "jdbc:mysql://localhost/TEST"
         user = "root" password = "pass123"/>
 
      <c:set var = "countryId" value = "98"/>
 
      <sql:update dataSource = "${snapshot}" var = "count">
         UPDATE Countries SET capital = 'Rome' WHERE Id = ?
         <sql:param value = "${countryId}" />
      </sql:update>
 
      <sql:query dataSource = "${snapshot}" var = "result">
         SELECT * from Countries;
      </sql:query>
 
      <table border = "1" width = "100%">
         <tr>
            <th>Contry ID</th>
            <th>Name</th>
            <th>Capital Town</th>
            <th>NumbResidents</th>
         </tr>
         
         <c:forEach var = "row" items = "${result.rows}">
            <tr>
               <td><c:out value = "${row.id}"/></td>
               <td><c:out value = "${row.name}"/></td>
               <td><c:out value = "${row.capital}"/></td>
               <td><c:out value = "${row.numbresidents}"/></td>
            </tr>
         </c:forEach>
      </table>
 
   </body>
</html>

In questo esempio viene modificato un record nella tabella Country, e in particolare la riga con ID=99 viene impostato il campo Capital con il valore “Rome”. Successivamente viene fatta una query dove si potrà vedere che la riga è stata modificata.


Ercole Palmeri

Newsletter sull’Innovazione
Non perderti le notizie più importanti sull'Innovazione. Iscriviti per riceverle via e-mail.

Articoli recenti

Il Futuro è Qui: Come il Settore Navale Sta Rivoluzionando l’Economia Globale

Il settore navale è una vera e propria potenza economica mondiale, che ha navigato verso un mercato da 150 miliardi…

1 Maggio 2024

Editori e OpenAI firmano accordi per regolare il flusso di informazioni elaborate dall’Intelligenza Artificiale

Lunedì scorso, il Financial Times ha annunciato un accordo con OpenAI. FT concede in licenza il suo giornalismo di livello…

30 Aprile 2024

I pagamenti online: ecco come i servizi di streaming ti fanno pagare per sempre

Milioni di persone pagano per i servizi di streaming, pagando mensilmente la quota di abbonamento. È opinione comune che tu…

29 Aprile 2024

Veeam presenta il supporto più completo per il ransomware, dalla protezione alla risposta e al ripristino

Coveware by Veeam continuerà a fornire servizi di risposta agli incidenti di cyber-estorsione. Coveware offrirà funzionalità di forensics e remediation…

23 Aprile 2024