<!-- 숫자포맷팅 -->
<c:set var = "price" value="10000" />
<fmt:formatNumber value="${price}" type="number" var="numbertype">
</fmt:formatNumber> <br>
원화 : <fmt:formatNumber type="currency" currencySymbol="원" value="${price}">
</fmt:formatNumber> <br>
퍼센트 : <fmt:formatNumber value="${price}" type="percent" groupingUsed="false">
</fmt:formatNumber> <br>
<!-- 날짜 시간 포맷팅 -->
<c:set var="now" value="<%= new java.util.Date() %>" />
<fmt:formatDate value="${now}" type="date" dateStyle="full" /> <br>
<fmt:formatDate value="${now}" type="date" dateStyle="short" /> <br>
<fmt:formatDate value="${now}" type="time" /> <br>
<fmt:formatDate value="${now}" type="both"
dateStyle="full" timeStyle="full" /> <br>
<fmt:formatDate value="${now}" pattern="yyyy-MM-dd hh:mm:ss" /> <br>
<!-- 대문자 MM month, 소문자 mm minute -->
(Java DataBase Connetivity)의 약자이고 자바에서 DB관련 작업을 처리할때 사용하는 API 이다.
대충 순서
JDBC 홈페이지 다운로드 제일밑 커뮤니티다운로드 Connector/J , (Connector -> 각언어들과 DB들의 연결 커넥터)
다운받고 WEB-INF/lib 안에 jar파일 하나만 넣기
JDBC의 전형적인 실행순서
<%@ page import="java.sql.*" %>
간단하게 연결해보기
<%
// 1.JDBC드라이버 로딩(MYSQL)
Class.forName("com.mysql.jdbc.Driver");//-> MYSQL JDBC드라이버
//Java API에 DB 연결 객체
Connection conn = null;
//ResultSet DB의 데이터를 JAVA에서 그대로 사용할수있게 하는 객체
//-> select의 결과를 DBMS에서 Java로 저장하기위한 객체
ResultSet rs = null;
//sql 질의문 작성후에 실행을 위한 객체
//PreparedStatement를 많이 쓴다고한다
Statement stmt = null;
//연결
//드라이브 매니저에게 Connection객체 요청
//Connection객체을 얻기위해서는 (URL, ID, PASSWORD)필요
//URL -> SQL localHost주소(MYSQL은 3306인듯 DB마다 다르데)
//ID는 보통 root일거고 비번은 내가정한 1234
try{//try-catch 필수로 사용한다고 함
String url="jdbc:mysql://localhost:3306/sample?serverTimezone=Asia/Seoul";
//"jdbc:mysql://localhost:3306/연결할 데이터베이스명?serverTimezone=Asia/Seoul" 시간설정 서울
//?뒤에 한글깨짐 방지로 데이터베이스명 + "useUnicode=true&characterEncoding=utf8"; 이거 넣어도됨
String dbUser = "root";
String dbPw = "1234";
// 2.DB 커넥션 생성
DriverManager.getConnection(url, dbUser, dbPw);
out.println("DB연결성공");
}catch(SQLException ex){
out.println("DB연결실패");
}finally{
//커넥션 종료
if (conn != null){ conn.close();}
}
%>
<%@ page import="java.sql.*" %>
<body>
<table border="1">
<!-- while(rs.next())로 반복해야하는 줄은
실제데이터줄이기 때문에 상단헤더줄은 고정 하고
다음줄부터 반복문 돌린다 -->
<tr>
<td>게시판 번호</td>
<td>내용</td>
<td>작성자</td>
<td>작성일</td>
<td>조회</td>
<td>좋아요~</td>
</tr>
<%
Class.forName("com.mysql.jdbc.Driver");//-> MYSQL JDBC드라이버
Connection conn = null;
ResultSet rs = null;
Statement pst = null;
try {
String url = "jdbc:mysql://localhost:3306/sample?
serverTimezone=Asia/Seoul";
String dbUser = "root";
String dbPw = "1234";
String query = "select * from board";
conn = DriverManager.getConnection(url, dbUser, dbPw);
pst = conn.createStatement();
rs = pst.executeQuery(query);
out.println("DB연결성공");
while(rs.next()){
//DB와 비교해서 데이터가 위치한 곳까지 한줄씩 뿌려준다
//1번줄..2번줄..3번줄... 다음줄에 데이터가 있으면 True를반환하고 계속 반복돌림
%>
<!-- board테이블과 column매칭시켜준다 -->
<tr>
<td><%= rs.getInt("no") %></td>
<td><%= rs.getString("content") %></td>
<td><%= rs.getString("uid") %></td>
<td><%= rs.getString("writedate") %></td>
<td><%= rs.getInt("count") %></td>
<td><%= rs.getInt("good") %></td>
</tr>
<!-- DB에 정의되있는 column 순서를바꿔서 출력가능 -->
<%
}//반복문 실행하므로 catch와 finally는 밖으로빼서 예외검사
}catch (SQLException ex) {
out.println("DB연결실패");
} finally {
if (conn != null) {
conn.close();
}
}
%>
</table>
</body>
결과
