파일 설치 관련

230824 찐최종본 spring 개발환경 만드는 루틴 정리

보더96 2023. 8. 24. 17:48

web.xml에 한글filter 넣어주기
<filter> 
     <filter-name>encodingFilter</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> 
<init-param> 
      <param-name>forceEncoding</param-name> 
    <param-value>true</param-value> 
    </init-param> 
  </filter> 
<filter-mapping> 
    <filter-name>encodingFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping>


views에 home.jsp에
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page session="false" %>

추가해주기

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ


pom.xml 수정루틴 
pom.xml

한글 filter 넣어주기

11,12번째줄
<java-version>11</java-version>
<org.springframework-version>5.0.7.RELEASE</org.springframework-version>
로 변경

116번째줄
junit 버젼 변경
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>


141,142번째줄
<configuration>
<source>11</source>
<target>11</target>
로 변경


94번째줄 
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
로 변경


62번째줄 log4j 버젼 변경
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>




후dependency 추가해주기


ㅡㅡㅡㅡㅡㅡㅡㅡㅡ롬복추가ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
https://mvnrepository.com/artifact/org.projectlombok/lombok/1.18.0


<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.0</version>
    <scope>provided</scope>
</dependency>

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ추가ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ


35번째 줄에 추가해주기
https://mvnrepository.com/artifact/org.springframework/spring-test/5.0.7.RELEASE


<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>${org.springframework-version}</version>
    <scope>test</scope>
</dependency>


 <version>${org.springframework-version}</version>  이 부분만 $로 변경해주기
$로 하면 위에 properties에 있는 버젼을 사용하게된다  12번째줄 버젼을 참고하게된다.



ㅡㅡㅡㅡㅡㅡㅡ기본적인 필요한것들 추가 및 변경 완료ㅡㅡㅡㅡㅡ



ㅡㅡㅡㅡㅡㅡㅡㅡDB관련 추가만 남음ㅡㅡㅡㅡㅡㅡㅡㅡㅡ


Spring JDBC
https://mvnrepository.com/artifact/org.springframework/spring-jdbc/5.0.7.RELEASE


<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${org.springframework-version}</version>
</dependency>


 <version>${org.springframework-version}</version>  이 부분만 $로 변경해주기
$로 하면 위에 properties에 있는 버젼을 사용하게된다  12번째줄 버젼을 참고하게된다.


ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

mybatis 연동관련 

mybatis 먼저 넣고
https://mvnrepository.com/artifact/org.mybatis/mybatis/3.4.6

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.6</version>
</dependency>


mybatis spring 넣어주기
https://mvnrepository.com/artifact/org.mybatis/mybatis-spring/1.3.2

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>1.3.2</version>
</dependency>

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

HikariCP추가

https://mvnrepository.com/artifact/com.zaxxer/HikariCP/2.7.8

<!-- https://mvnrepository.com/artifact/com.zaxxer/HikariCP -->
<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>2.7.8</version>
</dependency>

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

jdbc driver 설치
log4jdbc-log4j2


https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4/1.16

<!-- 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에 

log4jdbc.log4j2.properties 폴더를 만들어서

log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
를 넣어주기


log4j.xml이랑 같이 있게해주기

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

maven dependency를 바꾸면 console에 오류가 엄청생긴다
--> tomcat 클린 -> restart


ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

bean 추가 하는법!!!

root-context.xml 열어서 db사용하기 위해서 필요한 bean추가하기


<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig"> 
<property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"></property>
<property name="jdbcUrl" value="jdbc:log4jdbc:oracle:thin:@localhost:1522:XE"></property>
<property name="username" value="localmomo"></property>
<property name="password" value="localmomo"></property>
</bean>

<!-- class라는 attribute가 들어간다 id는 이해하기 쉬운 이름을 준다.
그 다음 child property 태그를 넣어준다 name이라는 키값을 넣어준다. value값에는 정확한 클래스 이름을 넣어준다.
그 다음 jdbcUrl을 넣어준다. ip, port,추가적인 url의 정보로 이루어진다. 제일먼저 프로토콜을 넣어준다. 
jdbc:log4jdbc:oracle:thin:@localhost:1522:XE 의 1522의 포트넘버를 가진 곳에 접속을하겠다를 지정
db의 아이디 비번을 property 안에 적어준다.
-->


hikariconfig를 사용해 db와 연결해 로그인을 한 상태까지 만들기 완료 하면

beans Graph를 확인해본다 ->diverClassName, jdbcUrl, username, password가 만들어져 있을것이다.

그 옆에 beans에 들어가 new bean 을 클릭한다
id : datasource
Class : HikariDatasource 검색해서 2.7.8 ver 히카리데이터소스를 넣어준다  
그옆에 destory-method:에 close 라고 적어준다.


넣어주면 Source 에 가면

<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource"
primary="false" destroy-method="close">
  <constructor-arg ref="hikariConfig"></constructor-arg>
</bean>
가 자동으로 추가되어 있다.

<constructor-arg ref="hikariConfig"></constructor-arg>
ref를 추가할때는 위에 추가한 <bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig"> 
의 bean id값에 ref를 넣어준다.


ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

밑에 beans 클릭
create new baens -> id : sqlSessionFactory, Class : SqlSessionFactory
next 눌러서 add 누르고 -> Name : dataSource , Ref : dataSource  ->  OK

저장하고baens graph와 source 추가된것을 확인하면 된다.

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

ojdbc8 추가

https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc8/19.3.0.0


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

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

히카리cp가 문제가 생기면 밑에 경로도 들어가기

sts 종료 ->

-> C:\Users\user\.m2\repository\com\zaxxer\HikariCP 있는것 삭제하기 

-> sts 실행 -> 혼자서 히카리cp가 업데이트 된다
-> HikariCP dependency 찾아서 내가 쓴 version을 수정해서 저장하기
-> 수정 버전에 대한 파일을 다운로드 해준다.


ㅡㅡㅡㅡㅡㅡㅡㅡㅡmvc 프로젝트를 하기 위한 기본작업ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

slq developer 열어서 root-context에 hikariConfig username,password 적어주기
새로 만들거나 , 만들어진것 사용 localmomo


ㅡㅡㅡㅡㅡㅡㅡㅡtable만들기ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ


create sequence seq_board;

create table tbl_board(
bno number(10,0),
title varchar2(200) not null,
content varchar2(2000) not null,
writer varchar2(50) not null,
regdate date default sysdate,
updatedate date default sysdate
);

alter table tbl_board add constraint
pk_board
primary key(bno);

insert into tbl_board(bno, title, content, writer)
values (seq_board.nextval, '제목 테스트','내용 테스트', 'user00');

commit;

select * from tbl_board;


ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

mybatis 사용하려면 mapper를 사용해야한다.


@Mapper 어노테이션을 사용하려면

root-context.xml -> Namespaces -> mybatis-spring 체크하면

<mybatis-spring:scan base-package=""/>   태그를 사용할수있다.

base-package => mapper 만든 경로를 ""에 넣어준다!!!

mapper는 src/main/java에 com.zerock.mapper 패키지를 만들어준다.

그럼 <mybatis-spring:scan base-package="com.zerock.mapper"/> 로 만들어주면 된다!

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

Mapper 파일 만들때 interface로 만들기!

public interface BoardMapper {
//sql문 넣을때 세미콜론 ; 안들어가게 해야한다.
@Select("select * from tbl_board")
public List<BoardVO> getList();
}

작성하고

src/test/java -> new -> JUnit Test case 생성-> com.zerock.mapper -> BoardMapperTests 생성

com.zerock.sample -> sampleTests.java


ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ



window  properties -> xml editor -> tamplates -> new 눌러서
here 누르고 -> new눌러서 -> mapper.xml 만들고 context : New Xml로 변경
<?xml version="1.0" encoding="${encoding}"?>
<!DOCTYPE mapper 
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">


apply해주면


src/main/resource -> new -> other -> new XML FILE -> 누르면 내가 만든
mapper.xml이 생성되어 있다. 이것을 클릭 하고 finish


그럼 BoardMapper.xml 에는
<?xml version="1.0" encoding="${encoding}"?>
<!DOCTYPE mapper 
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
가 적힌채로 생성된다.


ㅡㅡㅡㅡㅡㅡㅡㅡC R U D 에서 R을 생성한것이다. ㅡㅡㅡㅡㅡㅡㅡㅡ


BoardMapper.xml에다 실행시켜주는 sql구문을 적어준다.


<mapper namespace="com.zerock.mapper.BoardMapper">
<select id="getList" resultType="com.zerock.domain.BoardVO">
<![CDATA[
select * from tbl_board
]]>
<!-- 안전하게 하기 위해서 CDATA를 선언해준다. -->
</select>
</mapper>

sql문을 하나씩 적어준다 + delete, update, read 등등