728x90
반응형
https://bobo12.tistory.com/265
◎ Sql 태그
▷ Sql 태그의 종류
◎ <sql:query> 태그로 select 쿼리문 실행하기 예제
1. member.sql
drop table member; create table member( id varchar(20) not null, passwd varchar(20), name varchar(30), primary key (id) ); insert into member values('1', '1234', '홍길순'); insert into member values('2', '1235', '홍길동'); select * from member;
MySQL과 연동해 이클립스에서 member table을 생성하고 값들을 넣어줍니다.
2. sql01.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JSTL</title> </head> <body> <sql:setDataSource var="dataSource" url="jdbc:mysql://localhost:3306/jspbookdb" driver = "com.mysql.cj.jdbc.Driver" user="root" password="1234" /> <sql:query var="resultSet" dataSource="${dataSource}"> select * from member </sql:query> <table border = "1"> <tr> <c:forEach var="columnName" items="${resultSet.columnNames}"> <th width="100"><c:out value="${columnName}" /></th> </c:forEach> </tr> <c:forEach var="row" items="${resultSet.rowsByIndex}"> <tr> <c:forEach var="column" items="${row}" varStatus="i"> <td> <c:if test="${column != null}"> <c:out value="${column}" /> </c:if> <c:if test="${column != null}"> </c:if> </td> </c:forEach> </tr> </c:forEach> </table> </body> </html>
sql과 연결하고 table을 만들어서 데이터들을 표로 나타나게 만들어줍니다.
◎ <sql:update>태그로 insert 쿼리문 실행하기 예제
1. sql02.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Database SQL</title> </head> <body> <form method="post" action="sql02_process.jsp"> <p>아이디 : <input type="text" name="id"> <p>비밀번호 : <input type="text" name="passwd"> <p>이름 : <input type="text" name="name"> <p><input type="submit" value="전송"> </form> </body> </html>
2. sql02_process.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JSTL</title> </head> <body> <% request.setCharacterEncoding("utf-8"); String id = request.getParameter("id"); String passwd = request.getParameter("passwd"); String name = request.getParameter("name"); %> <sql:setDataSource var="dataSource" url="jdbc:mysql://localhost:3306/jspbookdb" driver = "com.mysql.cj.jdbc.Driver" user="root" password="1234" /> <sql:update dataSource="${dataSource}" var="resultSet"> insert into member(id, name, passwd) values (?,?,?) <sql:param value="<%=id %>" /> <sql:param value="<%=name %>" /> <sql:param value="<%=passwd %>" /> </sql:update> <c:import var="url" url="sql01.jsp" /> ${url} </body> </html>
새로운 값이 추가되면서 sql01의 테이블을 나타냅니다.
◎ <sql:update>태그로 update 쿼리문 실행하기 예제
1. sql03.jsp
▷ sql02.jsp와 같고 form의 action부만 sql03_process.jsp로 수정하면 됩니다.
2. sql03_process.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JSTL</title> </head> <body> <% request.setCharacterEncoding("utf-8"); String id = request.getParameter("id"); String passwd = request.getParameter("passwd"); String name = request.getParameter("name"); %> <sql:setDataSource var="dataSource" url="jdbc:mysql://localhost:3306/jspbookdb" driver = "com.mysql.cj.jdbc.Driver" user="root" password="1234" /> <sql:update dataSource="${dataSource}" var="resultSet"> update member set name=? where id=? and passwd=? <sql:param value="<%=name %>" /> <sql:param value="<%=id %>" /> <sql:param value="<%=passwd %>" /> </sql:update> <c:import var="url" url="sql01.jsp" /> ${url} </body> </html>
id와 passwd가 같으면 name을 수정할 수 있도록 만듭니다.
◎ <sql:update>태그로 delete 쿼리문 실행하기 예제
1. sql04.jsp
▷ sql03.jsp와 같고 form의 action부만 sql04_process.jsp로 수정하고 이름부분의 한 줄을 삭제합니다.
2. sql04_process.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JSTL</title> </head> <body> <% request.setCharacterEncoding("utf-8"); String id = request.getParameter("id"); String passwd = request.getParameter("passwd"); %> <sql:setDataSource var="dataSource" url="jdbc:mysql://192.168.111.40:3306/jspbookdb" driver = "com.mysql.cj.jdbc.Driver" user="root" password="1234" /> <sql:update dataSource="${dataSource}" var="resultSet"> delete form member where id =? and passwd=? <sql:param value="<%=id %>" /> <sql:param value="<%=passwd %>" /> </sql:update> <c:import var="url" url="sql01.jsp" /> ${url} </body> </html>
id와 passwd가 일치하는 값을 삭제해줍니다.
◎ Functions 태그
▷ Functions 태그의 종류
◎ <fn:contains>와 <fn:containsIgnoreCase> 태그로 문자열 검색하기 예제
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JSTL</title> </head> <body> <p>java 문자열 검색 <p>Hello, Java Server Pages! => ${fn:contains("Hello, Java Server Pages!", "java")} <p>hello, Java Server Pages! => ${fn:containsIgnoreCase("hello, Java Server Pages!", "java")} </body> </html> <!-- 출력 : java 문자열 검색 Hello, Java Server Pages! => false hello, Java Server Pages! => true -->
◎ <fn:split>와 <fn:join> 태그로 문자열 분리하고 연결하기 예제
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JSTL</title> </head> <body> <c:set var="texts" value="${fn:split('Hello, Java Server Pages!', ' ')}" /> <c:forEach var="i" begin="0" end="${fn:length(texts) - 1}"> <p> text[${i}] = ${texts[i]} </c:forEach> <p><c:out value="${fn:join(texts, '-')}" /> </body> </html> <!-- 출력 : text[0] = Hello, text[1] = Java text[2] = Server text[3] = Pages! Hello,-Java-Server-Pages! -->
SQL 태그를 이용하면 DB와 연동을 할 때 코드를 더 간단하게 표현해볼 수 있습니다.
function 태그는 자바의 내장 객체들의 함수들을 사용했을 때와 같이 split, join 등의 기능들을 수행할 수 있네요!!
이제 마지막 장으로 넘어가볼게요~
많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~
728x90
반응형
'BackEnd > JSP' 카테고리의 다른 글
[JSP 웹 프로그래밍] 웹 MVC (0) | 2023.03.12 |
---|---|
[JSP 웹 프로그래밍] JSP 표준 태그 라이브러리 1 (Core 태그) (0) | 2023.03.12 |
[JSP 웹 프로그래밍] JDBC 데이터베이스와 JSP 연동 3 (쿼리문 실행 결과 값 가져오기) (1) | 2023.03.12 |
[JSP 웹 프로그래밍] JDBC 데이터베이스와 JSP 연동 2 (데이터베이스 쿼리 실행) (1) | 2023.03.12 |
[JSP 웹 프로그래밍] JDBC 데이터베이스와 JSP 연동 1 (JDBC 드라이버 로딩, DBMS 접속) (1) | 2023.03.12 |