JSP-databasanslutning
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 posterna.
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 PHPMyadminclient, 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 tabellnamn som guru_test, och vi kommer att skapa två fields'emp_id och emp_name.
Emp_idis har datatyp som int
Emp_name har datatyp som varchar
Ett annat alternativ är genom att använda kommandotolken och ändringar i 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 tabell guru_testin databasen som heter GuruTestas följande på MYSQL-prompten:
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)
Först infogas posterna med hjälp av INSERT
fråga och sedan kan vi använda SELECT
fråga för att kontrollera om tabellen är skapad eller inte.
Skapa poster
Efter att ha skapat en tabell måste vi skapa poster i guru_test-tabellen med hjälp av insert-fråga, 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 göra flera operationer i databasen. Vi kan infoga posterna, och vi kan också ta bort de poster som inte krävs. Om någon post behöver redigeras kan vi göra det med en uppdatering. Select-operationen hjälper till att hämta de poster som krävs.
Välja
Operationen Välj används för att välja posterna från tabellen.
Exempelvis:
I det här exemplet kommer vi att lära oss om valoperationen för att hämta poster från guru_test-tabellen 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:
Kodrad 1: Här importerar vi io, uti och SQL bibliotek i java.
Kodrad 3: Här importerar vi kärnbiblioteket för JSTL och ger dess prefix som gurucore som hjälper till att få utdata.
Kodrad 4: Här importerar vi SQL-biblioteket för jstl och ger dess prefix som gurusql som hjälper till att utföra SQL-operationerna.
Kodrad 15-17: Här använder vi gurusql, vi ansluter datakälla genom att namnge variabel som "guru" och drivrutin som en JDBC-drivrutin. Lägger också till användarnamn och lösenord med "gururoot" och "guru".
Kodrad 19-21: Här använder vi SQL-frågan för urvalsfrågan.
Kodrad 31-32: Vi skriver ut utdata för emp id och emp name, som hämtas från resultaten av frågan och med hjälp av foreach loop skriver vi ut output.
När du kör ovanstående kod kommer vi att få utdata enligt nedan;
Produktion:
Här kommer båda posterna att hämtas från databasen
1 guru emp1
2 guru emp2
Insert
Insert operator används för att infoga posterna i databas.
Exempelvis:
I det här exemplet ska vi lära oss hur du 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:
Kodrad 19-20: Här infogar vi poster i tabellen guru_test i GuruTestdatabase. Posterna som infogas är: empID – 3 och empname – emp emp3. Dessa poster kommer att infogas i tabellen När du kör koden infogas posterna i tabellen som guru_test ,med värde 3 och emp emp3.
Notera: Här visar vi inte utdata eftersom vi bara infogar posten i tabellen. Vi kan hämta posten med hjälp av en vald fråga som 'select * from guru_test'. Om posten infogades då skulle vi få värdet som 3 och emp3. Om posten inte infogas då, kommer 3 inte att synas i poster i tabellen.
Radera
Detta är raderingsoperation där vi tar bort posterna från tabellen guru_test.
Exempelvis:
Här kommer vi att ta bort fråga för att ta bort posten från tabellen guru_test. Posten som måste raderas måste ställas in i variabeln "guruid", och motsvarande post raderas 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:
Kodrad 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.
Kodrad 19-22: Här använder vi en raderingsfråga som ställer in en parameter i where-satsen. Här är parametern guruid som ställs in i kodrad 18. Motsvarande post raderas.
Produktion:
När du kör ovanstående kod raderas posten med emp_id som 3.
Notera: I det här exemplet kan vi inte visa utdata eftersom vi tar bort posten från tabellen. För att kontrollera om den posten är raderad måste vi använda urvalsfrågan "select * from guru_test". I så fall, om vi får 3 som emp id så har raderingsfrågan misslyckats annars har posten raderats framgångsrikt.
Uppdatering
Uppdateringen används för att redigera posterna i tabellen.
Exempelvis:
<%@ 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:
Kodrad 18: Här sätter vi en variabel guruid som 2. Detta är ID där vi vill uppdatera posten.
Kodrad 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 ovanstående kod ändras posten med emp_id 2 till 99. Så nu kommer utgången att visa emp”guru99″ istället för emp “guru2”.
Sammanfattning
I den här självstudien lärde vi oss om att ansluta JSP till databas och databasåtkomst. Vi lärde oss också om olika operationer som utförs på tabellen i databasen som att skapa, ta bort, uppdatera, etc.