JSP-tietokantayhteys
Yhdistetään JSP:n tietokantaan
Tietokantaa käytetään erityyppisten tietojen tallentamiseen, jotka ovat valtavia ja joiden tallennuskapasiteetti on gigatavuina. JSP voi muodostaa yhteyden tällaisiin tietokantoihin tietueiden luomiseksi ja hallitsemiseksi.
Tässä opetusohjelmassa opimme luomaan taulukko tietokantaan ja kuinka luodaan tietueita näihin taulukoihin JSP:n kautta.
Luo taulukko
In MYSQL-tietokanta, voimme luoda taulukon tietokantaan millä tahansa MYSQL-asiakkaalla. Täällä käytämme PHPMyadminclientiä, ja siellä meillä on vaihtoehto "uusi" luodaksesi uuden taulukon alla olevan kuvakaappauksen avulla.
Tässä meidän on annettava taulukon nimi muodossa guru_test, ja luomme kaksi kenttää'emp_id ja emp_name.
Emp_idis, jonka tietotyyppi on int
Emp_namein tietotyyppi on varchar
Toinen vaihtoehto on komentokehotteen käyttö ja muutokset MYSQL-hakemistoon:
C:\> C:\>cd Program Files\MY SQL\bin C:\>Program Files\MySql\bin>
Voimme kirjautua tietokantaan seuraavasti:
C:\Program Files\MYSQL\bin>mysql –u gururoot –p Enter Password: ******* Mysql>
Luo taulukko guru_testin tietokantaan nimeltä GuruTestas seuraavasti MYSQL-kehotteessa:
Mysql> use GuruTest; MySql> create table guru_test( Emp_idint NOT NULL, Emp_namevarchar(11), ); Once you execute this you get the following: Query OK, 0 rows affected(0.10 sec) MySQl> select * from guru_test; Query OK, 0 rows affected(0.10 sec)
Ensin tietueet lisätään käyttämällä INSERT
kysely ja sitten voimme käyttää SELECT
kysely tarkistaaksesi, onko taulukko luotu vai ei.
Luo tietueita
Taulukon luomisen jälkeen meidän on luotava tietueita guru_test-taulukkoon käyttämällä lisäyskyselyä, joka näkyy alla:
Tänne syötetyt tietueet ovat:
- 1 ja guru emp1
- 2 ja guru emp2
MySql>INSERT INTO `couch_tomato_db`.`guru_test` (`emp_id`, `emp_name`) VALUES ('1', 'guru emp1'); Query OK, 1 row affected (0.05 sec) MySQL>INSERT INTO `couch_tomato_db`.`guru_test` (`emp_id`, `emp_name`) VALUES ('2', 'guru emp2'); Query OK, 1 row affected (0.05 sec)
JSP Operavaihtoehdot: Lisää, Päivitä, Poista, Valitse
JSP:tä käyttämällä voimme tehdä useita toimintoja tietokantaan. Voimme lisätä tietueita, ja voimme myös poistaa tietueita, joita ei vaadita. Jos jotakin tietuetta on muokattava, voimme tehdä sen päivityksen avulla. Valitse-toiminto auttaa hakemaan tarvittavat tietueet.
valita
Valitse-toimintoa käytetään tietueiden valitsemiseen taulukosta.
esimerkki:
Tässä esimerkissä opimme valitsemaan tietueiden hakemisen yllä olevassa osiossa luodusta guru_test-taulukosta.
<%@ 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"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Database JSP1</title> </head> <body> <sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/GuruTest" user="gururoot" password="guru"/> <sql:query dataSource="${snapshot}" var="result"> SELECT * from guru_test; </sql:query> <table> <tr> <th>Guru ID</th> <th>Name</th> </tr> <c:forEach var="row" items="${result.rows}"> <tr> <td><c:out value="${row.emp_id}"/></td> <td><c:out value="${row.emp_name}"/></td> </tr> </c:forEach> </table> </body> </html>
Koodin selitys:
Koodirivi 1: Täällä tuomme maahan io, uti ja SQL javan kirjastot.
Koodirivi 3: Täällä tuomme JSTL:n ydinkirjaston ja annamme sen etuliitteeksi gurucore, joka auttaa saamaan tulosteen.
Koodirivi 4: Täällä tuomme jstl:n SQL-kirjaston ja annamme sen etuliitteeksi gurusql, joka auttaa suorittamaan SQL-toiminnot.
Koodirivit 15-17: Tässä gurusql:n avulla yhdistämme tietolähteen nimeämällä muuttujan nimellä "guru" ja ajurin JDBC-ohjaimeksi. Myös käyttäjätunnuksen ja salasanan lisääminen "gururoot" ja "guru" kanssa.
Koodirivit 19-21: Tässä käytämme valintakyselyn SQL-kyselyä.
Koodirivit 31-32: Tulostamme tulosteen emp id:lle ja emp namelle, jotka noudetaan kyselyn tuloksista ja tulostetaan foreach-silmukkaa käyttäen.
Kun suoritat yllä olevan koodin, saamme tulosteen alla;
lähtö:
Täällä molemmat tietueet haetaan tietokannasta
1 guru emp1
2 guru emp2
liite
Insert-operaattoria käytetään tietueiden lisäämiseen tietokanta.
Esimerkiksi:
Tässä esimerkissä opimme lisäämään tietueita taulukkoon guru_test
<%@ 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="gurucore"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="gurusql"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Database JSP1</title> </head> <body> <gurusql:setDataSource var="guru" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/GuruTest" user="gururoot" password="guru"/> <gurusql:update dataSource="${guru}" var="guruvar"> INSERT INTO guru_test VALUES (3, 'emp emp3'); </gurusql:update> </body> </html>
Koodin selitys:
Koodirivit 19-20: Tässä lisäämme tietueita GuruTest-tietokannan guru_test-taulukkoon. Lisätyt tietueet ovat: empID – 3 ja empname – emp emp3. Nämä tietueet lisätään taulukkoon Kun suoritat koodin, tietueet lisätään taulukkoon muodossa guru_test, arvolla 3 ja emp emp3.
Huomautus: Tässä emme näytä tulosta, koska vain lisäämme tietueen taulukkoon. Voimme saada tietueen käyttämällä select-kyselyä 'valitse * guru_testistä'. Jos tietue lisättäisiin silloin, saisimme arvoksi 3 ja emp3. Jos tietuetta ei lisätä, 3 ei näy taulukon tietueissa.
Poista
Tämä on poistotoiminto, jossa poistamme tietueet taulukosta guru_test.
Esimerkiksi:
Täällä poistamme kyselyn tietueen poistamiseksi taulukosta guru_test. Poistettava tietue on asetettava muuttujaan “guruid”, ja vastaava tietue poistetaan tietokannasta.
<%@ 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="gurucore"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="gurusql"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Database JSP1</title> </head> <body> <gurusql:setDataSource var="guru" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/GuruTest" user="gururoot" password="guru"/> <gurucore:set var="guruid" value="3"/> <gurusql:update dataSource="${guru}" var="guruvar"> DELETE FROM guru_test WHERE emp_id = ? <gurusql:param value="${guruid}" /> </gurusql:update> </body> </html>
Koodin selitys:
Koodirivi 18: Asetamme muuttujan guruidin, jonka arvo on 3, joka on poistettava tietokannasta. Tämä on aina taulukon ensisijainen avain. Tässä tapauksessa ensisijainen avain on emp_id.
Koodirivit 19-22: Tässä käytämme poistokyselyä, joka asettaa parametrin where-lauseeseen. Tässä parametri on guruid, joka asetetaan koodiriville 18. Vastaava tietue poistetaan.
lähtö:
Kun suoritat yllä olevan koodin, tietue, jonka emp_id on 3, poistetaan.
Huomautus: Tässä esimerkissä emme voi näyttää tulosta, kun poistamme tietuetta taulukosta. Tarkistaaksemme, onko tietue poistettu, meidän on käytettävä valintakyselyä "select * from guru_test". Siinä tapauksessa, jos saamme 3 emp id:nä, poistokysely on epäonnistunut, muuten tietue on poistettu onnistuneesti.
Päivitykset
Päivitystä käytetään taulukon tietueiden muokkaamiseen.
Esimerkiksi:
<%@ 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="gurucore"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="gurusql"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Database JSP1</title> </head> <body> <gurusql:setDataSource var="guru" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/GuruTest" user="gururoot" password="guru"/> <gurucore:set var="guruid" value="2"/> <gurusql:update dataSource="${guru}" var="guruvar"> UPDATE guru_test SET emp_name='emp guru99' <gurusql:param value="${guruid}" /> </gurusql:update> </body> </html>
Koodin selitys:
Koodirivi 18: Tässä asetamme muuttujan guruidiksi 2. Tämä on tunnus, johon haluamme päivittää tietueen.
Koodirivit 19-22: Tässä käytämme päivityskyselyä tietueen päivittämiseen tietueen taulukossa guru_test, joka on asetettu kohdassa 18. Tässä emp guru2 korvataan emp guru99:llä
lähtö:
Kun suoritat yllä olevan koodin, tietue withemp_id 2 muuttuu arvoon 99. Joten nyt ulostulossa näkyy emp ”guru99” emp ”guru2” sijaan.
Yhteenveto
Tässä opetusohjelmassa opimme yhdistämään JSP:n tietokantaan ja tietokannan käyttöön. Lisäksi opimme tietokannan taulukossa suoritettavista erilaisista toiminnoista, kuten luomisesta, poistamisesta, päivittämisestä jne.