JSP-databasanslutning
โก Smart sammanfattning
Med JSP Database Connection kan en webbapplikation lagra och hantera stora datamรคngder genom att lรคnka JSP-sidor till en relationsdatabas. Den hรคr resursen fรถrklarar hur man skapar en MySQL tabell, infoga poster och utfรถra รฅtgรคrderna Vรคlj, Infoga, Uppdatera och Ta bort med hjรคlp av JSTL SQL-taggar.

Ansluter till databas i JSP
Databasen anvรคnds fรถr att lagra olika typer av data som รคr enorma och har lagringskapacitet i gigabyte. JSP kan ansluta till sรฅdana databaser fรถr att skapa och hantera poster.
I den hรคr handledningen kommer vi att lรคra oss hur man skapar en tabell i databasen och hur man skapar poster i dessa tabeller genom JSP.
Skapa bord
In MYSQL-databas, kan vi skapa en tabell i databasen med vilken MYSQL-klient som helst. Hรคr anvรคnder vi PHPMyadmin-klienten, och dรคr har vi ett alternativ "ny" fรถr att skapa en ny tabell med hjรคlp av skรคrmdumpen nedan.
I detta mรฅste vi ange tabellnamnet som guru_test, och vi skapar tvรฅ fรคlt, emp_id och emp_name.
- Emp_id har datatypen int
- Emp_name har datatypen varchar
Ett annat alternativ รคr att anvรคnda kommandotolken och byta till MYSQL-katalogen:
C:\> C:\>cd Program Files\MY SQL\bin C:\>Program Files\MySql\bin>
Vi kan logga in i databasen enligt fรถljande:
C:\Program Files\MYSQL\bin>mysql โu gururoot โp Enter Password: ******* Mysql>
Skapa tabellen guru_test i databasen med namnet GuruTesta enligt fรถljande pรฅ MYSQL-prompten:
Mysql> use GuruTest; MySql> create table guru_test( Emp_id int NOT NULL, Emp_name varchar(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)
Fรถrst infogas posterna med hjรคlp av INSERT frรฅgan, och sedan kan vi anvรคnda SELECT frรฅga fรถr att kontrollera om tabellen รคr skapad eller inte.
Skapa poster
Efter att vi skapat en tabell mรฅste vi skapa poster i guru_test-tabellen med hjรคlp av insert-frรฅgan, som visas nedan:
De poster som anges hรคr รคr:
- 1 och guru emp1
- 2 och 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 Operaalternativ: Infoga, Uppdatera, Ta bort, Vรคlj
Med JSP kan vi utfรถra flera operationer i databasen. Vi kan infoga poster och รคven ta bort poster som inte behรถvs. Om nรฅgon post behรถver redigeras kan vi gรถra det med hjรคlp av en uppdatering. Select-operationen hjรคlper till att hรคmta de poster som behรถvs.
Vรคlja
Operationen Vรคlj anvรคnds fรถr att vรคlja posterna frรฅn tabellen.
Exempel:
I det hรคr exemplet ska vi lรคra oss om urvalsoperationen fรถr att hรคmta poster frรฅn tabellen guru_test, som skapades i avsnittet ovan.
<%@ 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>
Fรถrklaring av koden:
Code Linje 1: Hรคr importerar vi io, util och SQL bibliotek i java.
Code Linje 3: Hรคr importerar vi kรคrnbiblioteket fรถr JSTL och anger dess prefix som c, vilket hjรคlper till att fรฅ utdata.
Code Linje 4: Hรคr importerar vi SQL-biblioteket frรฅn JSTL och anger dess prefix som sql, vilket hjรคlper till att utfรถra SQL-operationerna.
Code Rad 15-17: Hรคr anvรคnder vi SQL och ansluter datakรคllan genom att namnge variabeln som "snapshot" och drivrutinen som en JDBC-drivrutin. Vi lรคgger ocksรฅ till anvรคndarnamn och lรถsenord som "gururoot" och "guru".
Code Rad 19-21: Hรคr anvรคnder vi SQL-frรฅgan frรฅn urvalsfrรฅgan.
Code Rad 31-32: Vi skriver ut utdata fรถr anstรคllnings-ID och anstรคllningsnamn, vilka hรคmtas frรฅn resultatet av frรฅgan, och med hjรคlp av en foreach-loop skriver vi utdata.
Nรคr du kรถr ovanstรฅende kod fรฅr vi utdata enligt nedan:
Produktion:
Hรคr hรคmtas bรฅda posterna frรฅn databasen:
- 1 guru emp1
- 2 guru emp2
Insert
Operatorn Insert anvรคnds fรถr att infoga poster i databas.
Exempel:
I det hรคr exemplet ska vi lรคra oss hur man infogar posterna i tabellen 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>
Fรถrklaring av koden:
Code Rad 19-20: Hรคr infogar vi poster i tabellen guru_test fรถr GuruTestdatabas. De infogade posterna รคr: anstรคlldID โ 3 och anstรคlldnamn โ anstรคlldmp3Dessa poster kommer att infogas i tabellen. Nรคr du kรถr koden infogas posterna i tabellen guru_test, med vรคrdet 3 och emp e.mp3.
Obs: Hรคr visar vi inte utdata eftersom vi bara infogar posten i tabellen. Vi kan hรคmta posten med hjรคlp av urvalsfrรฅgan som 'select * from guru_test'. Om posten infogades skulle vi fรฅ vรคrdet 3 och e.mp3Om posten inte infogas kommer 3 inte att synas i posterna i tabellen.
Radera
Detta รคr borttagningsoperationen dรคr vi tar bort posterna frรฅn tabellen guru_test.
Exempel:
Hรคr kommer vi att anvรคnda borttagningsfrรฅgan fรถr att ta bort posten frรฅn tabellen guru_test. Posten som ska tas bort mรฅste anges i variabeln "guruid", och motsvarande post tas bort frรฅn databasen.
<%@ 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>
Fรถrklaring av koden:
Code Linje 18: Vi stรคller in en variabel guruid vars vรคrde รคr 3, som mรฅste tas bort frรฅn databasen. Detta รคr alltid en primรคrnyckel i tabellen. I det hรคr fallet รคr den primรคra nyckeln emp_id.
Code Rad 19-22: Hรคr anvรคnder vi en delete-frรฅga som stรคller in en parameter i where-klausulen. Hรคr รคr parametern guruid, som anges i kodrad 18. Motsvarande post raderas.
Produktion:
Nรคr du kรถr ovanstรฅende kod raderas posten med emp_id som 3.
Obs: I det hรคr exemplet kan vi inte visa utdata eftersom vi tar bort posten frรฅn tabellen. Fรถr att kontrollera om posten รคr borttagen mรฅste vi anvรคnda urvalsfrรฅgan "select * from guru_test". Om vi โโi sรฅ fall fรฅr 3 som anstรคllnings-ID har borttagningsfrรฅgan misslyckats; annars har posten tagits bort.
Uppdatering
Uppdateringen anvรคnds fรถr att redigera posterna i tabellen.
Exempel:
<%@ 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>
Fรถrklaring av koden:
Code Linje 18: Hรคr sรคtter vi en variabel guruid som 2. Detta รคr ID dรคr vi vill uppdatera posten.
Code Rad 19-22: Hรคr anvรคnder vi en uppdateringsfrรฅga fรถr att uppdatera posten i tabellen guru_test fรถr posten, som anges i punkt 18. Hรคr ersรคtts emp guru2 med emp guru99.
Produktion:
Nรคr du kรถr koden ovan รคndras posten med emp_id 2 till 99. Sรฅ nu kommer utdata att visa emp "guru99" istรคllet fรถr emp "guru2".


