일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 로그인 기능
- 쇼핑몰 프로젝트
- 스프링 쇼핑몰
- 스프링 이미지
- 스프링 쇼핑몰 프로젝트
- 로그아웃 기능 구현
- oracle 설치방법
- 스프링 포트폴리오
- arraylist
- 스프링 프로젝트 설정
- 쇼핑몰 포트폴리오
- 스프링 프로젝트
- 이미지 출력
- spring 쇼핑몰
- 스프링 업로드
- 스프링 게시판
- BCrypt 적용
- 삭제 구현
- Bcrypt
- 파일 업로드
- 스프링 HikariCP
- 스프링 파일 삭제
- 인증번호 전송
- 스프링 메일 전송
- ResponseEntity
- 정규표현식
- spring 프로젝트
- 회원가입 기능
- 스프링 프로젝트 기본 설정
- 스프링 게시판 구현
Archives
- Today
- Total
Kim VamPa
스프링 에러 : SQLSyntaxErrorExceptio 본문
728x90
반응형
org.springframework.jdbc.BadSqlGrammarException:
### Error updating database. Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL 명령어가 올바르게 종료되지 않았습니다
### The error may exist in com/vam/mapper/MemberMapper.xml
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: insert into BOOK_MEMBER values('admin23', 'admin', 'admin', 'admin', 'admin', 'admin', 'admin', 1, sysdate, 1000000, 1000000);
### Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL 명령어가 올바르게 종료되지 않았습니다
; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00933: SQL 명령어가 올바르게 종료되지 않았습니다
1. 상황
- blog_project에서 회원가입기능을 구현하기위해 오라클 쿼리 작성 후 테스트 하였으나 위와같은 경고 문구가 뜸
- 구조
- MemberMapper.xml/MemberMapper.java
- MmeberMapperTests.java
○MemberMapper.xml
<?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="com.vam.mapper.MemberMapper">
<insert id="memberJoin">
<!-- insert into book_member values(#{memberId}, #{memberPw}, #{memberName}, #{memberMail}, #{memberAddr1}, #{memberAddr2}, #{memberAddr3}, 0, sysdate, 100000, 5000 ); -->
<!-- insert into book_member values(#{memberId}, #{memberPw}, #{memberName}, #{memberMail}, #{memberAddr1}, #{memberAddr2}, #{memberAddr3}, 0, sysdate, 100000, 5000); -->
<!-- insert into book_member values(#{memberId}, #{memberPw}, #{memberName}, #{memberMail}, #{memberAddr1}, #{memberAddr2}, #{memberAddr3}, #{adminCk}, sysdate, #{money}, #{point}); -->
insert into BOOK_MEMBER values('admin23', 'admin', 'admin', 'admin', 'admin', 'admin', 'admin', 1, sysdate, 1000000, 1000000);
</insert>
</mapper>
○MemberMapper.java
package com.vam.mapper;
import com.vam.model.MemberVO;
public interface MemberMapper {
//회원가입
public void memberJoin(MemberVO member);
}
○MemberMapperTests.java
package com.vam.member;
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;
import com.vam.mapper.MemberMapper;
import com.vam.model.MemberVO;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
public class MemberMapperTests {
@Autowired
private MemberMapper membermapper;
@Test
public void memberJoin() throws Exception{
MemberVO member = new MemberVO();
/*
* member.setMemberId("test"); member.setMemberPw("1234");
* member.setMemberName("test"); member.setMemberMail("test");
* member.setMemberAddr1("123"); member.setMemberAddr2("member");
* member.setMemberAddr3("member"); member.setAdminCk(0); member.setPoint(100);
* member.setMoney(100);
*/
membermapper.memberJoin(member);
}
}
2. 시도해본 것들
- Oracle Develper에서 insert문 테스트후 그 쿼리문 그대로 MemberMapper.xml에 적용
=> 실패
- select문을 시도하였으나 동일하게 Oracle Developer 에선 실행되지만 스프링에선 여전히 실행되지 않음
3. 해결
쿼리문장에 세미콜론(;)이 들어있어서 실패
insert into BOOK_MEMBER values('admin23', 'admin', 'admin', 'admin', 'admin', 'admin', 'admin', 1, sysdate, 1000000, 1000000);
=>
insert into BOOK_MEMBER values('admin23', 'admin', 'admin', 'admin', 'admin', 'admin', 'admin', 1, sysdate, 1000000, 1000000)
○MemberMapper.xml
<?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="com.vam.mapper.MemberMapper">
<insert id="memberJoin">
<!-- insert into book_member values(#{memberId}, #{memberPw}, #{memberName}, #{memberMail}, #{memberAddr1}, #{memberAddr2}, #{memberAddr3}, 0, sysdate, 100000, 5000 ); -->
<!-- insert into book_member values(#{memberId}, #{memberPw}, #{memberName}, #{memberMail}, #{memberAddr1}, #{memberAddr2}, #{memberAddr3}, 0, sysdate, 100000, 5000); -->
<!-- insert into book_member values(#{memberId}, #{memberPw}, #{memberName}, #{memberMail}, #{memberAddr1}, #{memberAddr2}, #{memberAddr3}, #{adminCk}, sysdate, #{money}, #{point}); -->
insert into BOOK_MEMBER values('admin23', 'admin', 'admin', 'admin', 'admin', 'admin', 'admin', 1, sysdate, 1000000, 1000000)
</insert>
</mapper>
4. 느낀점
mysql에선 스프링에 있는 쿼리문에 세미콘이 들어있더라도 실행이 되었습니다. 오라클은 MySQL에비해 문법이나 구문에 조금더 신경을 써줘야 할 것같습니다.
728x90
반응형
'개발노트 > 에러' 카테고리의 다른 글
에러 : org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.filterChains' (0) | 2020.12.20 |
---|---|
에러 : java.sql.SQLException: 부적합한 열 유형: 1111 (0) | 2020.11.24 |
스프링 에러 : NoSuchBeanDefinitionException (1) | 2020.08.11 |
스프링 에러 : IndexOutOfBoundsException (0) | 2020.02.11 |
스프링 에러 : TooManyResultsException (0) | 2020.02.04 |
Comments