본문 바로가기
Programming/Java + Spring

[Spring] 게시판 실습2 (파일업로드) / 준비 단계

by 콩king 2022. 9. 28.

게시판 만들기 (파일 업로드) / 준비단계

순서

▶ pom.xml >> web.xml >> 자바파일 >>  Mapeer >> root-context.xml >> DB 만들기

 

pom.xml

<!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc6 -->
<dependency>
	<groupId>com.oracle.database.jdbc</groupId>
	<artifactId>ojdbc6</artifactId>
	<version>11.2.0.4</version>
</dependency>

<!--  SPRING JDBC 필요 --> 
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-jdbc</artifactId>
	<version>${org.springframework-version}</version>
</dependency>   

<!-- mybatis -->
<dependency>
	<groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.6</version>
</dependency>

<!-- mybatis-spring -->
<dependency>
	<groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>1.3.2</version>
</dependency>

<!-- JSTL -->
<dependency>
	<groupId>jstl</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>
<dependency>
	<groupId>org.apache.taglibs</groupId>
    <artifactId>taglibs-standard-spec</artifactId>
    <version>1.2.5</version>
</dependency>
<dependency>
	<groupId>org.apache.taglibs</groupId>
    <artifactId>taglibs-standard-impl</artifactId>
    <version>1.2.5</version>
</dependency>   

<!-- 파일업로드 -->
<dependency>
	<groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3</version>
</dependency>

▶ 라이브러리 추가해야함 >> Maven Dependencies 에 생성됨

▶ mybatis

     >> DB를 좀 더 유연하게 사용하기 위해

     >> 원래는 DAO에 쿼리문 다쓰는데 sql 문장들 따로 관리할려고

     >> root-context에 빈 만들어 놓음

     >> mybatis-config.xml / BoradMapper.xml

     

web.xml

<servlet-mapping>
	<servlet-name>appServlet</servlet-name>
	<url-pattern>*.do</url-pattern>
</servlet-mapping>

<!-- 한글인코딩  -->
<filter>
	<filter-name>charEncoding</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>charEncoding</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>

▶ servlet-mapping 수정

▶ 한글인코딩 추가하기

 

자바 파일

▶ controller 패키지

     >> BoardController.java

▶ dao 패키지
     >> BoardDAO.java >> 인터페이스

     >> BoardDAOImpl.java >> BoardDAO 상속받아옴

▶ service 패키지

     >> BoardService.java >> 인터페이스

     >> BoardServiceImpl.java >> BoardService 상속받음

▶ domain 패키지

     >> BoardVO.java

 

▶ DAO

▶ Service

 

▶ BoardVO

>> 이 외에 각 변수 getter / setter 있음

setter / getter 있어야 자동으로 담겨지고 자동으로 데이터 가져올 수 있음

 

Mapper

▶ BoardMapper

     >> sql 쿼리문 작성

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 
<mapper namespace="BoardDAO">
	<!-- 쿼리문 작성할 공간 -->
</mapper>

▶ mybatis-comfig.xml

     >> type = " 클래스의 패키지 주소 "

     >> alias=" 별칭 "

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
  
<configuration>
	<typeAliases>
		<typeAlias type="com.human.java.domain.BoardVO" alias="board"/>
	</typeAliases>
</configuration>

 

root-context.xml

▶ servlet에 관련된 설정은 servlet-context.xml에 servlet 외에 설정에 관련된 내용은 root-context에 적음

▶ 자동으로 만들어지는 빈 말고 내가 사용하는 빈을 여기다가 세팅

     >> 1. DB 연결

     >> 2. dataSource

               >> 2-1. DB연결

               >> 2-2 mabatis-config >> 별칭

               >> 2-3 BoardMapper >> sql 문장들

     >> 3. sqlSessionTemplate

               >>  위에거를 다 가지고 있는 개체를 최종적으로 하나 만든거임

               >> mabatis 쿼리문을 수행해주는 역할을 함

               >>  DB를 연결하기 위한 모든 객체를 가지고 있는 빈

     >> root-context.xml은 그냥 외워야함 // 사전처럼 사용

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
	<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
	<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/>
	<property name="username" value="아이디"/>
	<property name="password" value="비밀번호"/>
</bean>

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	<property name="dataSource" ref="dataSource"/>
	<property name="configLocation" value="classpath:/mybatis-config.xml"/>
	<property name="mapperLocations" value="classpath*:mappers/**/*Mapper.xml"/>
</bean>

<!-- DB를 연결하기 위한 모든 객체를 가지고 있는 빈 -->
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
	<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>

 

DB 만들기

CREATE TABLE upLoadtemp(
    b_id number(5) primary key, -- 글번호 
    b_name varchar2(20),-- 글쓴이 
    b_email varchar2(50),-- 글쓴이 메일 주소 
    b_title varchar2(80),-- 글 제목 
    b_content varchar2(3000),-- 글 내용 
    b_pwd varchar2(12),-- 비밀번호 
    b_date date,-- 글쓴날짜 
    b_count number(5) default 0,-- 조회횟수 
    b_ip varchar2(15),-- 글쓴이 아이피주소 
    b_fname varchar2(100), --파일이름
    b_fsize number  --파일용량
);

-- 2. 시퀀스 생성
CREATE SEQUENCE uploadtemp_bid_seq NOCACHE;

commit;

 

index.jsp

▶ 실행할 메인 파일임

댓글