수업/Spring

230822 spring oracle 연동, back cycle 연동 길 만들기

보더96 2023. 8. 22. 17:43

requestparam("name")은 아마 어떤 프로그래밍 컨텍스트에서 사용되는 함수나 메소드 호출을 나타내는 것 같습니다만, 전체적인 맥락이나 어떤 언어나 라이브러리에서 사용되는지에 따라 정확한 해석이 달라질 수 있습니다. 제가 미리 알고 있는 정보로 설명해드릴테니 가능한 한 가장 적합한 설명을 선택해보세요.

  1. HTTP 요청 파라미터 추출 (웹 개발): 웹 개발에서 requestparam("name")이라는 코드가 있다면, 이는 보통 HTTP 요청에서 "name"이라는 파라미터 값을 추출하는 작업을 나타낼 것입니다. 예를 들어, 웹 애플리케이션에서 사용자가 폼을 제출하거나 URL에 파라미터를 전달할 때 사용됩니다. 이를 통해 사용자가 입력한 데이터나 정보를 서버 측에서 처리할 수 있습니다.

 

 

http://localhost:8888/controller/ex01?name=%EC%95%84&age=12

실행시키면

 

콘솔창에 데이터가 넘어온다.

 

 

logger.info("name : " + name + ", age : " + age); 으로 logger로

http://localhost:8888/controller/ex01?name=%EC%95%84&age=12     

실행시키면 더 깔끔하게 나온다.

 

 

Model  -> spring framework   << 알아보기

 


 

model.addAttribute("name", name);
model.addAttribute("age", age);

적어주고

view -> ex01에

적어주면 화면에

 

이렇게 출력된다.


RequestParam에 있는 이름이 일치해야 한다.

뒤에는 변수 이름이라 달라도 상관없다. (같게 적어주는 이유는 프로그래밍할때 편하기 때문에!)

 

파란색 글씨는 view -> ex01 로도 가기 때문에 name을  -> n1으로 변경해주면 ex01도 변경해주어야한다.

 


@InitBinder -> 묶는다 

서버를 사용한다 = 묶는다 라고 표현한다

init = 초기화

binder = 묶는다 

InitBinder  -> 초기화 하면서 묶어준다

 


SampleController.java

 

 

import logger가 많다 뭘써야할까?  ->  import org.slf4j.Logger; 를 사용해야한다.


 

 


콘솔 출력값

 

http://localhost:8888/controller/sample/ex03?Name ~~ 이라고 대문자가 가능한이유

setName 이렇게 적어지기 때문에  spring에서 자체적으로 대소문자를 처리해준다.


SampleController.java에 @Log4j가 오류가 뜬다

오류를 없애려면 pom.xml에 가서 log4j를 찾는다

runtime scope을 주석처리해주면 log4j오류가 사라진다.

 

logger을 log로 바꾸어준다.


private Date date를 할때 java.until로 import를 해준다.

 

 

initBinder을 적어줄때 java.util.Date를 사용했으니 밑줄대로 적어준다. sql꺼 쓰면 java.sql.Date 로 적어주면된다.

 


 

주소를 보내주게 되면 콘솔창에

그대로 뜨게 된다.

/ 를 사용하고 싶으면 new simpleDateFormat("yyyy/MM/dd"); 로 변경해주면 된다.

 

 

네모친 page의 이름을 p로 변경하게 되면 view의 ex03에 있는 ${ page }를 ${ p }로 변경해줘야 정상적인 값을 가져올수 있다. 안되면 null로 적히거나 빈 공간으로 나온다. 

 

 

 


oracle 연동방법

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

maven 복사  ->  pom.xml에 <dependencies>안에 넣어주기

 

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

 

넣어주면 java build path에 19.3.0.0 이 적용된것을 확인할수 있다.

 

maven 오류가 생기면 repository를 삭제해버리면 maven오류가 사라진다.

대신에 전부다 다시 다운받고 연동시켜줘야한다!!!

위치 C:\Users\user\.m2\repository  

 


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

maven 복사  ->  pom.xml에 dependencies 안에 넣어주기

 

 

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

 

넣어주면 java build path에 2.7.4가 적용된것을 확인할수 있다.

 

 

root-context.xml 에 

<!-- jdbc connection 관리 -->
<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
<property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1522:XE"></property>
<property name="username" value="momopet"></property>
<property name="password" value="momopet"></property>
</bean>

<bean id="datasource" class="com.zaxxer.hikari.HikariDataSource">
<constructor-arg ref="hikariConfig"/>
</bean>

 

을 추가해준다.

 

 

Baens Graph에서 확인하면 이렇게 나온다.

connection이 성공해서 beans에 나오는것이다.

 

 

 

@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-contexxt.xml")
//file: 파일프로토콜 사용한다.

 



//try.catch를 쓰다 오류가 생길것 같으면 throws 를 써서 다른곳으로 던져서 예외처리를 한다.

 


★★spring에서  mybatis 사용하는 방법★★

 

https://mvnrepository.com/artifact/org.mybatis/mybatis/3.4.6

 

maven 복사  ->  pom.xml에 dependencies 안에 넣어주기

 

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

 

넣어주면 java build path에 3.4.6이 적용된것을 확인할수 있다.

 

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

mybatis과 spring 과 연동시켜주는 mybatis spring도 똑같이 넣어준다.

 

https://mvnrepository.com/artifact/org.mybatis/mybatis-spring/1.3.2

 

maven 복사  ->  pom.xml에 dependencies 안에 넣어주기

 

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

 

넣어주면 java build path에 1.3.2가 적용된것을 확인할수 있다.

 

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

 

뭔가 많이 필요한데 계속 추가해준다.

https://mvnrepository.com/artifact/org.springframework/spring-jdbc/5.3.18

 

maven 복사  ->  pom.xml에 dependencies 안에 넣어주기

 

<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->


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

 

 ${org.springframework-version}   ->  써주는 이유는 버젼을 맞춰주기 위해서 사용한다.

 

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

root-context에 

 

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
</bean>

적어준다.

 

 

SqlSessionFactory 연결해주고 Session 연결해주면 back cycle 연결 완료.