Połączenie z bazą danych JSP

⚡ Inteligentne podsumowanie

Połączenie z bazą danych JSP umożliwia aplikacji internetowej przechowywanie i zarządzanie dużymi wolumenami danych poprzez łączenie stron JSP z relacyjną bazą danych. Ten zasób wyjaśnia, jak utworzyć MySQL tabelę, wstawiaj rekordy i wykonuj operacje Select, Insert, Update i Delete przy użyciu znaczników SQL JSTL.

  • 🗄️ Cel: Bazy danych przechowują gigabajty danych, które JSP może tworzyć, odczytywać i zarządzać nimi.
  • 🧱 Utwórz tabelę: Zbuduj tabelę guru_test z emp_id i emp_name przy użyciu MySQL klient lub monit.
  • 🔌 Podłączenie: Tag sql:setDataSource dostarcza sterownik JDBC, URL, użytkownika i hasła.
  • 🔁 OKRUTNY Operacje: Operacje Select, Insert, Update i Delete są uruchamiane za pomocą tagów SQL JSTL.
  • 🔑 Parametry: Użyj sql:param i klucza podstawowego, takiego jak emp_id, aby wskazać konkretne rekordy.

Połączenie z bazą danych JSP

Łączenie się z bazą danych w JSP

Baza danych służy do przechowywania różnego rodzaju danych, które są ogromne i mają pojemność liczoną w gigabajtach. JSP może łączyć się z takimi bazami danych, aby tworzyć i zarządzać rekordami.

W tym samouczku dowiemy się, jak utworzyć tabelę w bazie danych i jak utworzyć rekordy w tych tabelach za pomocą JSP.

Utwórz tabelę

In Baza danych MYSQLMożemy utworzyć tabelę w bazie danych za pomocą dowolnego klienta MYSQL. W tym przypadku używamy klienta PHPMyadmin i mamy opcję „Nowa”, aby utworzyć nową tabelę, jak pokazano na poniższym zrzucie ekranu.

Utwórz tabelę w bazie danych JSP

W tym przypadku musimy podać nazwę tabeli jako guru_test i utworzyć dwa pola: emp_id i emp_name.

  • Emp_id ma typ danych int
  • Emp_name ma typ danych varchar

Utwórz tabelę w bazie danych JSP

Inną opcją jest skorzystanie z wiersza poleceń i przejście do katalogu MYSQL:

C:\>
C:\>cd Program Files\MY SQL\bin
C:\>Program Files\MySql\bin>

Możemy zalogować się do bazy danych w następujący sposób:

C:\Program Files\MYSQL\bin>mysql –u gururoot –p
Enter Password: *******
Mysql>

Utwórz tabelę guru_test w bazie danych o nazwie GuruPrzetestuj w wierszu poleceń MYSQL, postępując w następujący sposób:

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)

Najpierw wstawiane są rekordy za pomocą INSERT zapytanie, a następnie możemy użyć SELECT zapytanie sprawdzające, czy tabela została utworzona, czy nie.

Twórz rekordy

Po utworzeniu tabeli musimy utworzyć rekordy w tabeli guru_test, korzystając z zapytania insert, które pokazano poniżej:

Wpisane tutaj rekordy to:

  • 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 OperaOpcje: Wstaw, Aktualizuj, Usuń, Wybierz

Korzystając z JSP, możemy wykonywać wiele operacji na bazie danych. Możemy wstawiać rekordy, a także usuwać te, które nie są potrzebne. Jeśli któryś rekord wymaga edycji, możemy to zrobić za pomocą funkcji aktualizacji. Operacja SELECT pomoże w pobraniu wymaganych rekordów.

Wybierz

Operacja Wybierz służy do wybierania rekordów z tabeli.

Przykład:

W tym przykładzie poznamy operację SELECT polegającą na pobieraniu rekordów z tabeli guru_test, która została utworzona w powyższej sekcji.

<%@ 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>

Wyjaśnienie kodu:

Code Linia 1: Tutaj importujemy io, util i SQL biblioteki javy.

Code Linia 3: Tutaj importujemy główną bibliotekę JSTL i podajemy jej prefiks c, co pomoże w uzyskaniu danych wyjściowych.

Code Linia 4: Tutaj importujemy bibliotekę SQL JSTL i podajemy jej prefiks sql, co ułatwi wykonywanie operacji SQL.

Code Linia 15-17: Tutaj, używając SQL, łączymy źródło danych, nadając zmiennej nazwę „snapshot”, a sterownikowi nazwę „JDBC driver”. Dodajemy również nazwę użytkownika i hasło „gururoot” i „guru”.

Code Linia 19-21: Tutaj wykorzystujemy zapytanie SQL typu select.

Code Linia 31-32: Drukujemy dane wyjściowe dla identyfikatora emp i nazwy emp, które są pobierane z wyników zapytania, a następnie, używając pętli foreach, drukujemy dane wyjściowe.

Po wykonaniu powyższego kodu otrzymamy poniższy wynik:

Wyjście:

Tutaj oba rekordy zostaną pobrane z bazy danych:

  • 1 guru mp1
  • 2 guru mp2

wstawka

Operator Wstaw służy do wstawiania rekordów do baza danych.

Przykład:

W tym przykładzie nauczymy się wstawiać rekordy do tabeli 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>

Wyjaśnienie kodu:

Code Linia 19-20: Tutaj wstawiamy rekordy do tabeli guru_test GuruBaza danych testowa. Wstawione rekordy to: empID – 3 i empname – emp emp3Te rekordy zostaną wstawione do tabeli. Po wykonaniu kodu rekordy zostaną wstawione do tabeli guru_test z wartością 3 i emp emp3.

Uwaga: Tutaj nie pokazujemy wyniku, ponieważ po prostu wstawiamy rekord do tabeli. Możemy pobrać rekord za pomocą zapytania SELECT, np. „select * from guru_test”. Gdyby rekord został wstawiony, otrzymalibyśmy wartość 3 i e.mp3. Jeśli rekord nie zostanie wstawiony, wówczas wartość 3 nie będzie widoczna w rekordach w tabeli.

Usunięcia

Jest to operacja usuwania, podczas której usuwamy rekordy z tabeli guru_test.

Przykład:

Tutaj użyjemy zapytania delete, aby usunąć rekord z tabeli guru_test. Rekord, który ma zostać usunięty, należy ustawić w zmiennej „guruid”, a odpowiadający mu rekord zostanie usunięty z bazy danych.

<%@ 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>

Wyjaśnienie kodu:

Code Linia 18: Ustawiamy zmienną guruid o wartości 3, którą należy usunąć z bazy danych. Jest to zawsze klucz podstawowy tabeli. W tym przypadku kluczem podstawowym jest emp_id.

Code Linia 19-22: Tutaj używamy zapytania usuwającego, które ustawia parametr w klauzuli WHERE. Parametrem jest tutaj „guruid”, ustawiany w wierszu kodu 18. Odpowiedni rekord zostaje usunięty.

Wyjście:

Kiedy wykonasz powyższy kod, rekord z emp_id jako 3 zostanie usunięty.

Uwaga: W tym przykładzie nie możemy wyświetlić wyniku, ponieważ usuwamy rekord z tabeli. Aby sprawdzić, czy rekord został usunięty, musimy użyć zapytania wybierającego „select * from guru_test”. W takim przypadku, jeśli otrzymamy 3 jako identyfikator pracownika, zapytanie usuwające nie powiedzie się; w przeciwnym razie rekord zostanie usunięty pomyślnie.

Aktualizacja

Aktualizacja służy do edycji rekordów w tabeli.

Przykład:

<%@ 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>

Wyjaśnienie kodu:

Code Linia 18: Tutaj ustawiamy zmienną guruid na 2. Jest to identyfikator, w którym chcemy zaktualizować rekord.

Code Linia 19-22: Tutaj używamy zapytania aktualizującego, aby zaktualizować rekord w tabeli guru_test rekordu ustawionego w punkcie 18. Tutaj emp guru2 zostaje zastąpione przez emp guru99.

Wyjście:

Po wykonaniu powyższego kodu rekord z emp_id 2 zostanie zmieniony na 99. W rezultacie na wyjściu pojawi się emp „guru99” zamiast emp „guru2”.

FAQ

Tak. Asystenci AI mogą generować znaczniki SQL JSTL lub kod JDBC do łączenia JSP z MySQL, buduj zapytania i mapuj wiersze wyników. Nadal powinieneś zweryfikować sterownik, URLi dane uwierzytelniające przed uruchomieniem.

Tak. Narzędzia AI mogą oznaczać zapytania łączone ze sobą ciągami znaków i sugerować zapytania sparametryzowane lub przygotowane instrukcje. Zmniejsza to ryzyko ataku typu SQL injection, choć nadal zaleca się ręczną kontrolę bezpieczeństwa wszystkich danych wejściowych do bazy danych.

JDBC (Java Łączność z bazą danych to API, które umożliwia Java Aplikacje JSP łączą się z bazą danych. Ładuje sterownik, taki jak com.mysql.jdbc.Driver, i uruchamia polecenia SQL przez połączenie.

Nie. Tagi SQL JSTL nadają się do nauki i prototypów. W środowisku produkcyjnym logika bazy danych powinna znajdować się w serwletach, DAO lub frameworku.ping JSP koncentruje się na prezentacji, a nie na bezpośrednich zapytaniach.

Podsumuj ten post następująco: