반응형

spring에서 mssql을 연동하여, mybatis로 쿼리를 사용하는데 다음과 같은 에러가 발생했다.


mybatis Incorrect syntax near '@P0'.


쿼리문을 확인해도 @P0 가 들어간 부분으 없었고, 검색해서 찾은결과


mssql 에서 TOP 을 사용할때 괄호 '( )' 를 사용하지 않아서 발생하는 문제였다.

(실제 mssql에서 쿼리를 실행 할 때는 괄호를 사용하지 않는다.)


http://stackoverflow.com/questions/7038818/ms-sql-exception-incorrect-syntax-near-p0


(추가로 @P0 에서 숫자 0은 위치를 나타내는 것 같으며, 위치에 따라 0부터 1씩 증가 할 것으로 예상)

반응형
반응형

전자정부프레임워크에서 mybatis를 사용하려고 한다. (전자정부프레임워크는 기본적으로 iBatis 사용)


여기서는 eGovFrame 3.5.1 버전이며, eGovFrame Web Project로 프로젝트를 생성하는 경우를 말한다.

프로젝트 생성시, Generate Example을 체크하고 생성한 경우를 얘기하며, sample 소스를 예로 한다.

(eGovFrame Template Project를 mybatis로 사용하려면, 설정부터 모든 sql을 바꿔줘야한다.)


src/main/resources/egovframework/spring/ 경로의 아래에 보면 mybatis 설정과  ibatis 설정이 모두 들어있다.

(pom.xml에 mybatis를 추가 할 필요가 없다.)


context-sqlMap.xml 파일이 ibatis 설정이며,

context-mapper.xml 파일이 mybatis 설정이다.


 eGovFrame Web Project로 프로젝트를 생성, 서버를 실행시키면 ibatis 설정으로 작동하는 것을 알 수 있다. 


전자정부프레임 워크는 EgovAbstractDAO 클래스와 EgovAbstractMapper가 존재하는데,

EgovAbstractDAO 가 ibatis 설정이며, EgovAbstractMapper가 mybatis 설정이다.


쿼리를 실행하기 위한 SampleDAO 파일을 열어보면, EgovAbstractDAO 을 상속 받는 것을 알수있다.

이 부분을 EgovAbstractMapper으로 변경하여 상속받으면, mybatis 설정으로 작동을 하게 된다.


ibatis 설정


mybatis 설정


상속받는 클래스를 변경 하면, 에러가 발생하는데 이것은 당연히 ibatis 문법이기 때문이다.

에러나는 부분을 mybatis에 맞게 수정을 하고 실행을 해 보면 에러 없이, mybatis로 작동하는 것을 확인 할 수있다.


예를 들어 SampleDAO 에 selectSampleListTotCnt 부분은 아래와 같이 변경하면 된다.


위는 ibatis 아래는 mybatis 입니다.





이제부터는 자신의 소스에 맞게 작업을 하면 된다.



반응형

'SPRING > egovframework' 카테고리의 다른 글

전자정부프레임워크 mssql 연동  (3) 2017.01.31
반응형

윈도우 커맨드 화면에서 경로 이동을 하려면 cd 명령어를 사용해야 한다. 


하지만 D드라이브 혹은 다른 드라이브로 이동하는 경우 cd 명령어를 사용해도 이동이 불가능하다.


그냥  D:  을 입력하여 D드라이브로 이동한다. 


( D드라이브로 이동 후 D드라이브 안에서 경로 이동시에는 cd 명령어 사용 )

반응형
반응형

node.js + express + mysql 을 사용한


node.js CRUD 예제 소스 입니다.


소스에 대한 자세한 설명은 추후 작성 예정


https://github.com/nahosung/node_crud

반응형

'JavaScript > node.js' 카테고리의 다른 글

node mysql 연결 예제 (node-mysql)  (0) 2016.12.26
node 자동 재실행 supervisor  (0) 2016.12.21
express.js 설치  (0) 2016.12.21
node js 설치  (0) 2016.12.21
반응형

aws로 instance를 생성해서 사용하는 경우, 


고정 ip를 지정하지 않으면 instance를 재시작했을경우 ip가 변경이 됩니다. 


그렇기 때문에, 고정 ip를 지정하여 사용합니다. 


( *aws free tier(1년 무료) 의 경우 1개의 고정 ip를 무료로 제공을 합니다. 

  단, 고정 ip를 반드시 instance에 연결을 해야합니다. 그렇지 않으면 요금이 부과됩니다. 

   그리고 고정 ip를 지정한 instance는 정지된 상태가 아닌 실행중인 상태이어야 하며, 정지 상태일 경우에도 요금이 부과됩니다. )


첫번째로 aws에서 자신의 콘솔창으로 접속을합니다. 그리고 ec2를 선택하여 좌측 메뉴에서 Elastic IPs를 선택합니다.



Allocate new address  버튼을 클릭하고 다음화면(혹은 팝업화면)에서 allocate를 클릭하여 고정 ip를 할당받습니다.


(ip를 하나도 할당받지 않은 경우 화면중앙에 나타나며, 좌측에 있는 버튼과 같으니 아무거나 누르면됩니다.)



Elastic IPs 화면에 새로운 고정 ip가 할당된것을 확인 할 수 있습니다.

이것으로 끝나는 것이 아니라 고정ip를 instance에 연결해야 합니다. 


Elastic IP를 선택하고 마우스 오른쪽 버튼을 클릭하여 Associate address 버튼을 클릭합니다.


Associate address 버튼을 클릭하면 아래와 같은 화면이 나오며, Instance를 지정하고 Associate 버튼을 클릭하면 됩니다.


(Insatance 부분을 클릭하면, 자동으로 선택가능한 Instance가 나오며 선택을 하면됩니다.)




위의 과정을 통해 고정ip를 instance에 할당 하였으며, 해당 ip를 통해 접속이 가능합니다. 


Instance로 들어가서 클릭하고 하단의 정보를 확인하면 아래와 같이 위에서 지정한 고정 ip로 할당된것이 확인 가능 합니다. 



반응형

'AWS' 카테고리의 다른 글

aws 우분투 java 설치 및 tomcat 설치  (0) 2017.03.07
aws free tier 종료일  (1) 2017.02.08
aws 리눅스 vsftp 환경 설정  (0) 2016.07.29
aws Unable to locate the model you have specified 에러 발생  (1) 2016.07.20
aws 인스턴스 삭제  (0) 2016.07.20
반응형
간단하게 스프링에서 파일을 업로드 하는 방법입니다. 

1. pom.xml 추가
첫번째로 pom.xml 에 아래와 같이 depency를 추가한다. 
(따로 최신 버전을 찾지 않아도 상관없을듯 합니다.)

 


2. servlet-context.xml 추가
두번째로 servlet-context.xml 에 아래와 같이 baen을 추가합니다.
( 아래의 'beans:bean' 이런식으로 있는 부분은 자신의 파일에 맞게 수정하시면됩니다. )



3. jsp 파일 폼 추가

아래와 같이 간단한 jsp 파일을 작성합니다.


스프링 폼 태그를 사용 했으며, 폼태그에 enctype="multipart/form-data" 을 꼭 넣어야 파일 전송이 가능합니다.




4. Controller 파일 업로드

마지막으로 jsp에서 전송된 파일을 받아 controller에서 파일 업로드를 합니다. 

소스상으로 간단하며, @RequestParam("uploadFile") MultipartFile file 이부분이 jsp에서 받은 파일을 담는 변수입니다.

file.getOriginalFilename()으로 해당 파일의 이름으로 지정된 경로로 파일을 업로드 합니다. 

(실제 파일을 저장할때는 원본 파일명과 다른 유니크한 이름으로 변경하여 파일을 저장한다.)




해당 예제에서는 단순하게 파일을 업로드 하기만 하지만, 파일 업로드시 파일에 정보를 DB에 넣기도 해야하니 FileVO를 하나 생성하고(Map사용 무관),

Controller에서 파일 명을 받아온 방식으로 file.get** 으로 필요한 정보로 가공하여 저장하면됩니다. 

(여기서는 DB에 넣는 Service, dao.. 부분은 생략합니다.)


반응형
반응형

스프링 mvc 구조에서 Ajax 통신으로 json을 return 하는 방법입니다. 

스프링에서 json으로 return 받는 방식은 여러가지 방법이 있으며,

이글에서는 jackson 을 사용하고, @ResponseBody 어노테이션을 사용하는 방식입니다.


첫번째 메이븐을 통해 jackson 을 다운 받습니다. 

pom.xml에 아래와 같이 추가합니다.



(글을 쓰는 당시 위의 버전이 최신이었음.)


두번째로 Ajax 통신을 위한 Controller를 작성합니다. 

아래의 예제는 '/admin/push/version' 의 url에 'pushTarget' 값을 전송하여 'VersionVO' 라는 vo 리스트를 담아 전송하는 소스입니다.

간단하게 설명하면, 원하는 결과를 조회하여 json으로 return 하는 부분입니다.

다음에 나오는 Ajax 부분을 보면 좀더 이해하기 쉬을 것 입니다. 



여기서 중요한 것은 반환형의 앞에 @ResponseBody 라는 어노테이션을 사용한 것입니다.

@ResponseBody을 사용하여 return 결과를 json으로 만드는 것.


마지막으로 Ajax 통신을 하는 자바스크립트 부분입니다.

위에서 작성한 url 경로를 통해 ajax 통신을 하고 json으로 return을 받은 후 결과를 가지고 처리 합니다. 



위의 자바스크립트 부분만을 설명하자면 pushTarget을 선택하는 선택한 값을 전송해 

결과 값을 받아 pushVersion이라는 selector의 option 값을 바꿔주는 소스이다.



소스의 일부분만 가져온 것이므로, 

json으로 return 받기위한 방법만을 참조하면된다.

반응형
반응형

스프링 환경에서 jsp form 을 전송하는 경우 한글이 깨지는 경우가 발생한다. 


이러한 경우 web.xml 에 아래와 같이 추가해주면, form을 전송시 한글이 정상적으로 전송되는 것을 알 수 있다.



반응형
반응형

spring mybatis mysql 을 연결하여, DB에 한글을 insert 혹은 update 하면 한글 깨짐 현상이 발생하는 경우가 있다.


이러한 경우에는 mysql 을 연결하는 url에 다음과 같은 문장을 추가하면된다. 


useUnicode=true&characterEncoding=utf8



ex)


jdbc:mysql://127.0.0.1:3306/DB명?useUnicode=true&characterEncoding=utf8

반응형
반응형

스프링 mysql 연동하는 중 한글 설정을 하는데 root-context.xml 파일에서 아래와 같은 오류가 발생했다.


The reference to entity "characterEncoding" must end with the ';' delimiter.


원인은 xml에서 & 에 대한 부분에서 발생을 하는 것이며, & 로 변경하면 에러가 사라진다.

반응형

+ Recent posts