Fairy ' s
[Spring] 게시판 / 함수 & 개념 정리 #2 본문
개념 정리 #2
SqlSession 클래스 (MemberDAOImpl.java) // 참고
- SqlSession을 통해 매핑구문을 실행하거나 커밋 또는 롤백을 할 수 있음
- Mybatis 연동을 해서 사용할 수 있음
- 제공하는 메서드 종류
메서드 | 기능 |
List selectList(query_id) | id에 대한 select 문 실행 후, 여러 레코드를 List로 반환 |
List selectList(query_id, 조건) | id에 대한 select 문 실행, 사용되는 조건도 전달 |
T selectOne(query_id) | id에 대한 select 문 실행 후, 지정된 타입으로 한 개의 레코드 반환 |
T selectOne(query_id, 조건) | id에 대한 select 문 실행, 사용되는 조건도 전달 |
Map<K,V> selectMap(query_id, 조건) | id에 대한 select 문 실행,사용되는 조건도 전달. Map 타입으로 레코드 반환 |
int insert(query_id, Object obj) | id에 대한 insert문 실행, 객체의 값을 테이블에 추가 |
int update(query_id, Object obj) | obj 객체의 값을 조건문의 수정 값으로 사용, id에 대한 update문 실행 |
int delete(query_id, Object obj) | obj 객체의 값을 조건문의 조건 값으로 사용, id에 대한 delete문 실행 |
- 사용 방법
// root-context.xml
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:/mybatis-config.xml"></property>
<property name="mapperLocations" value="classpath:mappers/**/*Mapper.xml"/>
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"></constructor-arg>
</bean>
// BoardDAOImpl.java
import org.apache.ibatis.session.SqlSession;
@Repository
public class BoardDAOImpl implements BoardDAO {
@Inject
private SqlSession sqlSession;
@Override
public void write(BoardVO boardVO) throws Exception {
sqlSession.insert("boardMapper.insert", boardVO);
}
...
}
- sqlSession.insert("boardMapper.insert", boardVO); 는 boardMapper.xml에서 id가 insert인 sql문을 실행함
DateFormat // 참고
- 다양한 형태로 날짜를 표현할 수 있음
- 날짜 표현 종류
- jsp 파일에서 fmt 사용 시 상단에 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>를 선언해 주어야 함
코드 (DateFormat dateFormat = ) | 출력 |
DateFormat.getDateTimeInstance(DateFormat.FULL); | 2023년 1월 1일 일요일 |
DateFormat.getDateTimeInstance(DateFormat.LONG); | 2023년 1월 1일 (일) |
DateFormat.getDateTimeInstance(DateFormat.MIDIUM); | 2023. 1. 1 |
DateFormat.getDateTimeInstance(DateFormat.SHORT); | 23. 1. 1 |
- SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); ◁ 20230101
- dateFormat = new SimpleDateFormat("E MMM dd HH:mm:ss", Local.UK); ◁ Sat January 01 9:00:00
// HomeController.java
Date date = new Date();
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
String formattedDate = dateFormat.format(date);
Map<String, Object> // 참고
- String위치 key, Object위치 value. key와 value는 한 쌍, key로 식별하고 value에 값을 넣음
- key 값은 중복이 불가능하고 동일한 key에 값을 넣을 시 먼저 넣은 값이 적용
- Map의 주요 메서드 사용 법
메서드 | 해석 |
Map.put(key,value); | Map 안에 값 넣기 |
Map.get(key); | Map 안의 값 가져오기 |
Map.size(); | Map 크기 확인 |
Map.replace(key, value); | Map 안의 내용 변경 |
Map.containsKey(key or value); | Map 안에 특정 key, value 들었는지 확인 |
Map.isEmpty(); | Map 의 크기가 0인기 확인 |
Map.remove(key); | Map 안의 내용 삭제 |
Map.getOrDefault(key,default); | key가 있으면 value, 없으면 default 호출 |
Map.putIfAbsent(key, value); | key가 없거나 valuer가 null 일때만 삽입 |
- 선언 종류
선언 | 설명 |
HashMap | Map 안에서 key / value 에 따른 순서 없음 |
TreeMap | key 값에 따라 오름차순 정렬 |
LinkesHashMap | 삽입 순서에 따라 정렬 |
HashTable | key / value 에 null을 넣을 수 없음 |
<c:forEach items = "${A}" var = B>
- JAVA의 for문과 비슷한 기능으로, 받은 "${A}" 값 만큼 반복해 줌
- var는 B의 이름으로 "${A}"를 선언한 것
<c:out value="${A.b}">
- A에 있는 b를 가져와 출력해줌
- <c: > 사용 시 jsp파일 상단에 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 를 선언해 주어야 함
// list.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
...
<c:forEach items="${list}" var = "list">
<tr>
<td><c:out value="${list.bno}" /></td>
<td>
<a href="/board/readView?bno=${list.bno}&page=${scri.page}&perPageNum=${scri.perPageNum}&searchType=${scri.searchType}&keyword=${scri.keyword}"><c:out value="${list.title}" /></a>
</td>
<td><c:out value="${list.writer}" /></td>
<td><fmt:formatDate value="${list.regdate}" pattern="yyyy-MM-dd"/></td>
<td><c:out value="${list.hit}"/></td>
</tr>
</c:forEach>
'Study > Spring' 카테고리의 다른 글
[Spring] Annotation (0) | 2023.01.17 |
---|---|
[Spring] 게시판 / 함수 & 개념 정리 #3 (0) | 2023.01.06 |
[Spring] 개발 환경 구축 (0) | 2023.01.04 |
[Spring] 게시판 / 함수 & 개념 정리 #1 (0) | 2023.01.02 |
[Spring] 게시판 / 작동 순서 (0) | 2023.01.02 |
Comments