mysql 기준
<!-- Servlet -->
<!-- <dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency> -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- Test -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- 외부 라이브러리 추가 -->
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4 -->
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4</artifactId>
<version>1.16</version>
</dependency>
<!-- 외부 라이브러리 추가 -->
▲▲▲ 편집/추가 부분
- src/main/resources 폴더에 아래파일 복사
* mybatis-config.xml
* log4jdbc.log4j2.properties
* logback.xml
- src/main/webapp.../ spring/root-context.xml
* namespace탭 -aop,beans,context,jdbc,mvc,mybatis 체크설정
* namespace내 체크설정후 source탭으로 돌아오면 체크설정된 여러가지 url들이 설정되어있음
* source탭 아래 추가 코드
<!-- 디비연결 정보 처리객체(bean)(DataSource) -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"
value="com.mysql.cj.jdbc.Driver"/>
<property name="url"
value="jdbc:mysql://localhost:3306/springdb?useSSL=false&serverTimezone=Asia/Seoul"/>
<property name="username" value="root"/>
<property name="password" value="1234"/>
</bean>
<!-- 디비연결 정보 처리객체(bean)(DataSource) -->
-log4jdbc 연결 root-context
<property name="driverClassName"
value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"/>
<property name="url"
value="jdbc:log4jdbc:mysql://localhost:3306/springdb?useSSL=false&serverTimezone=Asia/Seoul"/>
-driver 와 url만 변경// 변경후 콘솔창 확인
중간 INFO jdbc.connection 과 jdbc.audit 가 추가되었다 !
▼▼▼▼▼통코드
<hide/>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.3.xsd
http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">
<!-- Root Context: defines shared resources visible to all other web components -->
<!-- 디비연결 정보 처리객체(bean) -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<!-- <property name="driverClassName"
value="com.mysql.cj.jdbc.Driver"/>
<property name="url"
value="jdbc:mysql://localhost:3306/springdb?useSSL=false&serverTimezone=Asia/Seoul"/>
-->
<property name="driverClassName"
value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"/>
<property name="url"
value="jdbc:log4jdbc:mysql://localhost:3306/springdb?useSSL=false&serverTimezone=Asia/Seoul"/>
<property name="username" value="root"/>
<property name="password" value="1234"/>
</bean>
<!-- 디비연결 정보 처리객체(bean) -->
<!-- sqlSessionFactory 객체 : 디비연결, mybatis설정, mapper설정 -->
<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"></property>
</bean>
<!-- sqlSessionFactory 객체 : 디비연결, mybatis설정, mapper설정 -->
<!-- sqlSession 객체 : 디비연결, 자원해제 -->
<bean id="sqlSession"
class="org.mybatis.spring.SqlSessionTemplate"
destroy-method="clearCache">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"></constructor-arg>
</bean>
<!-- sqlSession 객체 : 디비연결, 자원해제 -->
<!-- 디비처리, 서비스처리 사용 연결-->
<context:component-scan base-package="com.itwillbs.persistence" />
<context:component-scan base-package="com.itwillbs.service" />
<!-- 디비처리, 서비스처리 사용 연결-->
</beans>
sqlSessionFactory / sqlSession / service / persistence 연결추가
package com.mason.controller;
import java.sql.Connection;
import javax.inject.Inject;
import javax.sql.DataSource;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(
locations = {"file:src/main/webapp/WEB-INF/spring/root-context.xml"}
)
public class DataSourceTest {
@Inject
private DataSource ds;
//@Inject
@Autowired
private SqlSession sqlSession;
@Test
public void testDS() throws Exception{
System.out.println("디비 연결객체 : "+ds);
Connection con = ds.getConnection();
System.out.println(" 디비 연결 정보 : "+con);
}
@Test
public void testSession() throws Exception {
System.out.println("\n"+sqlSession+"\n");
}
}
- 디비연결확인 ** 중요
- src/test/java -패키지 - DataSourceTest.java 생성후 class 어노테이션 @Runwith
안될시 pom.xml junit 아무버전으로 변경 저장 // 다시 원래 버전으로 변경 저장
그래도 안되면 maven update(치트키인듯 ㅋㅋ 맨날 이거해야함... 계속 하면 우울해지는 우울버튼)
그그그래래래도도도 안되면 C:\Users\사용자\.m2\repository 아래폴더 걍 지우고 다시 켜서 업데이트
사용자명은 영어가 좋음
- java 버전 확인 및 변경
* properties - java Compiler, project Facets
* Deployment Assembly 에서 Maven Dependencies 확인.. 없으면 add해서 'Java Build Path Entries'에서추가
- web.xml 한글처리
<!-- 한글처리 필터등록 -->
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 한글처리 필터등록 -->
- src/test/java - 패키지 생성(DataSourceTest.java와 같은패키지) -*DAOTest.java (*Asterisk)
<hide/>
package com.mason.controller;
import javax.inject.Inject;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.itwillbs.domain.BoardVO;
import com.itwillbs.persistence.BoardDAO;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(
locations = {"file:src/main/webapp/WEB-INF/spring/root-context.xml"}
)
public class BoardDAOTest {
//DAO 객체 생성(의존주입)
@Inject
private BoardDAO bdao;
//로그
private static final Logger logger =
LoggerFactory.getLogger(BoardDAOTest.class);
//@Test
public void daoTest() throws Exception {
logger.info("\n@@@@@\n"+bdao+"\n@@@@@");
}
//게시판 글쓰기 테스트
//@Test
public void createTest() throws Exception {
logger.info("게시판 글쓰기 시작");
BoardVO inputVO = new BoardVO();
inputVO.setTitle("1번 글테스트");
inputVO.setContent("내용123123");
inputVO.setWriter("관리자");
//DAO동작 호출
bdao.create(inputVO);
logger.info("게시판 글쓰기 끝");
}
//@Test
public void readTest() throws Exception{
int bno = 1;
BoardVO bvo = bdao.read(bno);
logger.info("\n#####\n"+bvo+"\n#####");
}
//게시판 정보수정(특정글)
@Test
public void updateTest() throws Exception{
BoardVO bvo = new BoardVO();
bvo.setContent("내용수정123123");
//bdao.update(1);
}
//게시판 글 삭제(특정글)
@Test
public void deleteTest() throws Exception{
//BoardVO bvo = bdao.delete(1);
}
}
- @Inject 대신 @Autowired를 써봤다.
- '@Test' 어노테이션을 주석처리하면 실행시 테스트 안되니 적절히 사용
콘트롤러 쪽만 잘 제어한다면 이제 스프링도 고도화 싸움인것같다.
여전히 재밌다. 다행이다.
끝인가?일단저장 !
'ㆍSpring & JSP' 카테고리의 다른 글
[jsp] 회원가입- id 유효성/중복 검사-db연동-ajax (0) | 2021.09.12 |
---|---|
[스프링]쇼핑몰 / 장바구니 만들기 첫페이지 기능구현 완성! (0) | 2021.09.10 |
[jsp] fmt:formatDate 날짜/시간/화폐/소수점 포맷format (0) | 2021.09.05 |
[JSP] EL표현식 / c:forEach 문 ㅡ 자바for문과 비교하기 (0) | 2021.09.05 |
[jsp][EL표현식/JSTL] 기본정리편 (0) | 2021.09.04 |