JSP veza s bazom podataka
Povezivanje s bazom podataka u JSP-u
Baza podataka služi za pohranu raznih vrsta podataka koji su ogromni i imaju kapacitet pohrane u gigabajtima. JSP se može povezati s takvim bazama podataka za stvaranje i upravljanje zapisima.
U ovom vodiču naučit ćemo kako stvoriti tablicu u bazi podataka i kako stvoriti zapise u tim tablicama putem JSP-a.
Stvori tablicu
In MYSQL baza podataka, možemo kreirati tablicu u bazi s bilo kojim MYSQL klijentom. Ovdje koristimo PHPMyadminclient, a tu imamo opciju "novo" za stvaranje nove tablice koristeći donju snimku zaslona.
U ovome, moramo dati naziv tablice kao guru_test, i mi ćemo stvoriti dva polja 'emp_id i emp_name.
Emp_idis ima tip podataka kao int
Emp_name ima tip podataka kao varchar
Druga mogućnost je korištenje naredbenog retka i promjena u MYSQL direktoriju:
C:\> C:\>cd Program Files\MY SQL\bin C:\>Program Files\MySql\bin>
U bazu se možemo prijaviti na sljedeći način:
C:\Program Files\MYSQL\bin>mysql –u gururoot –p Enter Password: ******* Mysql>
Stvorite tablicu guru_testa u bazi podataka pod nazivom GuruTestas sljedeće na MYSQL odzivniku:
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)
Prvo se umeću zapisi pomoću INSERT
upit i onda možemo koristiti SELECT
upit za provjeru je li tablica kreirana ili ne.
Stvorite zapise
Nakon kreiranja tablice moramo kreirati zapise u guru_test tablicu pomoću upita za umetanje, koji je prikazan ispod:
Ovdje uneseni zapisi su:
- 1 i guru emp1
- 2 i 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 Operaopcije: Umetni, Ažuriraj, Izbriši, Odaberi
Koristeći JSP, možemo napraviti više operacija u bazi podataka. Možemo umetnuti zapise, a također možemo izbrisati zapise koji nisu potrebni. Ako bilo koji zapis treba urediti, to možemo učiniti pomoću ažuriranja. Operacija odabira pomoći će u dohvaćanju potrebnih zapisa.
odabrati
Operacija Select koristi se za odabir zapisa iz tablice.
Primjer:
U ovom primjeru naučit ćemo o operaciji odabira dohvaćanja zapisa iz tablice guru_test koja je stvorena u gornjem odjeljku.
<%@ 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>
Objašnjenje koda:
Redak koda 1: Ovdje uvozimo io, uti i SQL java knjižnice.
Redak koda 3: Ovdje uvozimo biblioteku jezgre JSTL-a i dajemo njen prefiks kao gurucore što će pomoći u dobivanju rezultata.
Redak koda 4: Ovdje uvozimo SQL biblioteku jstl-a i dajemo njegov prefiks kao gurusql koji će pomoći u obavljanju SQL operacija.
Redak koda 15-17: Ovdje koristeći gurusql, povezujemo izvor podataka imenovanjem varijable kao "guru" i upravljačkog programa kao JDBC upravljačkog programa. Također dodavanje korisničkog imena i lozinke s “gururoot” i “guru”.
Redak koda 19-21: Ovdje koristimo SQL upit za odabir upita.
Redak koda 31-32: Ispisujemo izlaz za emp id i emp name, koji se dohvaćaju iz rezultata upita i koristeći foreach petlju ispisujemo izlaz.
Kada izvršite gornji kod, dobit ćemo izlaz kao u nastavku;
Izlaz:
Ovdje će oba zapisa biti dohvaćena iz baze podataka
1 guru emp1
2 guru emp2
umetak
Operator umetanja koristi se za umetanje zapisa u baza podataka.
Primjer:
U ovom primjeru naučit ćemo o umetanju zapisa u tablicu 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>
Objašnjenje koda:
Redak koda 19-20: Ovdje umećemo zapise u tablicu guru_test baze podataka GuruTest. Umetnuti zapisi su: empID – 3 i empname – emp emp3. Ovi će zapisi biti umetnuti u tablicu. Kada izvršite kod, zapisi se umeću u tablicu kao guru_test, s vrijednošću 3 i emp emp3.
Bilješka: Ovdje ne prikazujemo izlaz jer samo umećemo zapis u tablicu. Zapis možemo dobiti korištenjem upita odabira kao 'select * from guru_test'. Da je zapis tada umetnut, dobili bismo vrijednost kao 3 i emp3. Ako tada zapis nije umetnut, 3 se neće vidjeti u zapisima u tablici.
Izbrisati
Ovo je operacija brisanja gdje brišemo zapise iz tablice guru_test.
Primjer:
Ovdje ćemo izbrisati upit za brisanje zapisa iz tablice guru_test. Zapis koji treba obrisati treba postaviti u varijablu “guruid”, a odgovarajući zapis se briše iz baze podataka.
<%@ 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>
Objašnjenje koda:
Redak koda 18: Postavljamo varijablu guruid čija je vrijednost 3, koja se mora izbrisati iz baze podataka. Ovo je uvijek primarni ključ tablice. U ovom slučaju, primarni ključ je emp_id.
Redak koda 19-22: Ovdje koristimo upit za brisanje koji postavlja parametar u klauzuli where. Ovdje je parametar guruid koji je postavljen u liniji koda 18. Odgovarajući zapis se briše.
Izlaz:
Kada izvršite gornji kôd, briše se zapis s emp_id kao 3.
Bilješka: U ovom primjeru ne možemo prikazati izlaz jer brišemo zapis iz tablice. Da bismo provjerili je li taj zapis izbrisan, moramo upotrijebiti upit odabira “select * from guru_test”. U tom slučaju, ako dobijemo 3 kao emp id, upit za brisanje nije uspio, inače je zapis uspješno izbrisan.
Nadopune
Ažuriranje se koristi za uređivanje zapisa u tablici.
Primjer:
<%@ 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>
Objašnjenje koda:
Redak koda 18: Ovdje postavljamo varijablu guruid kao 2. Ovo je ID gdje želimo ažurirati zapis.
Redak koda 19-22: Ovdje koristimo upit ažuriranja za ažuriranje zapisa u tablici guru_test zapisa koji je postavljen u točki 18. Ovdje je emp guru2 zamijenjen s emp guru99
Izlaz:
Kada izvršite gornji kod, zapis s emp_id 2 mijenja se u 99. Dakle, sada će izlaz prikazivati emp”guru99″ umjesto emp “guru2”.
rezime
U ovom vodiču naučili smo o povezivanju JSP-a s bazom podataka i pristupu bazi podataka. Također, naučili smo o raznim operacijama koje se izvode na tablici u bazi podataka kao što su kreiranje, brisanje, ažuriranje itd.