SpringFramework 21

[JNDI] DB연동 _026_

# 1. JNDI(JavaNaming and Directory API) 1. WAS에서 DB Connection Pool을 관리 2. JNDI 설정 순서 - tomcat의 server.xml에 DB Connection 생성(JNDI의 이름 생성) - tomcat의 context.xml에 JNDI의 이름을 프로젝트에서 사용할 수 있도록 global로 설정 - 프로젝트의 web.xml에서 JNDI의 이름을 가져옴 - 스프링 설정파일에서 가져온 JNDI 이름을 사용하여 DB연동 - DB연동: JNDI _026_SpringBoard_JNDI 설정방식: tomcat server.xml에 dbconnection 생성(jndi의 이름을 정함) -> tomcat context.xml에 생성한 이름을 링크를 걸어서 프로..

SpringFramework 2022.12.05

_020_

Maven Repository에서 Mtbatis 3.5.10버전 Ibatis Core » 3.0버전 MyBatis Spring » 2.0.7 -src/main/resources에 sql-map-config.xml 생성 (->Mybatis 설정파일) -root-context.xml 내용 주석 내용 작성 -src/main/resources에 mappings 폴더 생성 mappings 폴더 안에 board-mapper.xml 파일 생성 -BoardDAO 복사해서 BoardDAOJdbcTemplate 생성 BoardDAO 에서 수정 //SqlSessionTemplate 받아오기 @Autowired SqlSessionTemplate mybatis; 쿼리 삭제 CRUD 기능 구현 수정 -BoardVO.java에서 ..

SpringFramework 2022.11.16

[MyBatis]

# 2. MyBatis란 1. MyBatis란 - Sql Mapper Framework의 한 종류. - iBatis가 apache에서 개발되어 주류를 이루고 있었는데 2010년에 구글이 iBatis를 인수하면서 이름을 MyBatis로 변경 - 2010년부터 MyBatis가 성행했다. 요즘은 Sql Mapper Framewor보다는 ORMFramework(JPA, Hibernate 등)가 유행하고 있다. 2. MyBatis의 구조 - DAO에서 쿼리문을 분리하여 따로 xml파일로 관리 - sql-map-config.xml과 같은 MyBatis 설정 파일이 존재. 조회쿼리에서 결과값이 표출방식(카멜케이스 등), 결과를 담아주거나 쿼리의 매개변수를 담아줄 객체들의 alias를 설정할 수 있고 DAO에서 분리된..

SpringFramework 2022.11.16

_019_

트랜잭션을 설정할 수 있는 tx추가 root-context.xml의 Namespaces에서 tx로 추가 -Impl -boardDAO.java private final String BOARD_INSERT = "INSERT INTO BOARD VALUES(?, ?, ?, ?, now(), 0)"; 글등록에서 jdbcTemplate.update(BOARD_INSERT, boardVO.getBoardNo(), boardVO.getBoardTitle(), boardVO.getBoardContent(), boardVO.getBoardWriter()); -> boardVO.getBoardNo() 추가 -Test.java에서 3. 글등록테스트 boardVO.setBoardNo(100); 추가 -> 워크벤치에서 sele..

SpringFramework 2022.11.16

[트랜잭션]

# 1. 트랜잭션 처리 1. 트랜잭션(Transaction)이란 - 트랜잭션은 DB에서 일어나는 작업의 단위 - DDL(insert, delete, update)을 실행할 때 항상 commit이나 rollback이 실행돼야 트랜잭션이 완료됨. - 스플링에서는 aop기능을 이용해서 트랜잭션 처리를 설정할 수 있다. 2. 스프링에서의 트랜잭션 - 트랜잭션을 설정할 때는 애즈팩트대신 어드바이저를 사용한다. - 개발자가 쿼리가 실패인지 성공인지를 결정할 수 없기 때문에 commit이나 rollback이 발생하는 순간을 알지 못함. 따라서 어드바이저에게 commit, rollback 처리를 맡긴다. 어드바이저는 쿼리가 성공하면 commit을, 실패하면 rollback을 자동으로 호출한다. - 예제 프로젝트: _0..

SpringFramework 2022.11.16

_018_

Maven Repository에서 dbcp2 Apache Commons DBCP » 2.9.0 Maven복사하고 pom.xml에 붙여넣으면, Maven Dependencies에서 확인 가능 -root-context.xml JDBC Template에서 사용할 DataSource 설정 외부파일 참조 /resources에 config 폴더 생성.config 폴더 안에 db.properties파일 생성 -root-context.xml -BoardRowMapper.java 클래스 생성 Maven Repository에서 Spring JDBC org.springframework spring-jdbc 5.3.23 ===> 수정. ${org.springframework-version} -BoardDAO.java 수정 -..

SpringFramework 2022.11.15

[JDBC Template]

# 6. JDBC Template (DAO.java와는 다르게 연결과 닫는것을 반복 사용 X) 1. JDBC Template이란 - GoF의 디자인 패턴중 템플릿 디자인 패턴이 적용된 클래스. - 템플릿 패턴은 반복되는 작업을 캡슐화하여 재사용할 수 있는 패턴으로 정의하는 방식 - DBCP의 DataSource를 의존성으로 주입받아 커넥션 풀 방식으로 사용된다. DB커넥션을 지정한 개수만큼 만들어 놓고 대여해주고 DB 연결이 끝날 때 돌려받는 방식. - 예제 프로젝트: _018_SpringFramework_JDBCTemplate 2. JDBC Template에서 사용가능한 메소드 - update() : insert, update, delete 구문 처리 시 사용 :? 인자값을 어떻게 처리할 지에 따라서 ..

SpringFramework 2022.11.15

_015_

-LogAdivce.java 복사. AfterReturningAdvice.java 클래스 변경 m.ezen.spring.common.AfterReturningAdvice"> 실행함수 변경 -AfterReturningAdvice.java 복사. AfterThrowingAdvice.java BoardServiceImpl.java에서 임의로 예외 발생 m.ezen.spring.common.AfterThrowingAdvice"> - AfterThrowingAdvice.java 복사. AfterAdvice 빈객체 생성 m.ezen.spring.common.AfterAdvice"> aop after 생성 -AfterAdvice 복사. AroundAdvice BoardServiceImpl.java 임의로 예의발생 주..

SpringFramework 2022.11.15