📘
【初心者向け/ITスクール46日】ServerとDB連携(READ)
はじめに
今日は、ITスクールに通った46日目の日で、今日学んだ知識を記事にシェアしたいと思います。本記事が、ITを勉強を始めた方々にもロードマップになればいいと思います。
46日目は、今まで、JDBCとTomcatを連携し、WEBSITEからREAD(SELECT)したデーターを呼び出すことを練習しました。全体的な復習みたいな感じでした。
DBCP(Connect Pool)
前回はOracle DBに連携する際に、OracleDBとデーターをIOするたびにConnectionオブジェクトを生成する形でした。
しかし、とてもスピードが遅くなるので、事前にConnectionオブジェクトを生成しておき、必要たびにDateを交換するDBCPについて勉強しました。
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
name="hyonPool"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
factory="org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory"
username="rnjsgurah2"
password="1234"
url="jdbc:oracle:thin:@localhost:1521:xe"
maxTotal="500"
maxIdle="100"
/>
</Context>
このような設定をxmlに込みます。
package com.hyon.db.manager;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class HyonDBManager {
public static Connection connect(String poolName) throws Exception{
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:comp/env/" + poolName);
return ds.getConnection();
}
public static void close(Connection con, PreparedStatement pstmt, ResultSet rs) {
try {
rs.close();
}catch(Exception e) {
}
try {
pstmt.close();
}catch(Exception e) {
}
try {
con.close();
}catch(Exception e) {
}
}
}
JSP + Custom TAG
<%@ 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="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div class="table">
<table>
<thead>
<tr>
<th>지역</th>
<th>이름</th>
</tr>
<tbody>
<c:forEach var="apple" items="${apples }">
<tr>
<td>
${apple.a_location}
</td>
<td>
<fmt:formatNumber type="currency" value="${apple.a_price }" />
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</body>
</html>
setAttributeに込めたDTOのデーターをcustom tagを通してループすることがポイントでした。
こちらはうまく具象できなくて、<%= %>のようなJSP文法に依存したところが悔しかった!
Discussion