input[id*="popup"]{
    display:none;
}
input[id*="popup"] + label {
    display: inline-block;
    padding: 20px;
    background-color: #00b7d4;
    color:#fff;
}
input[id*="popup"] + label + div{
    position:fixed;
    top:0px;
    left:0px;
    width:100%;
    height: 100%;
    z-index: 100;
}
input[id*="popup"] + label + div > div{
    position:absolute;
    top: 50%;
    left: 50%;
    transform:translate(-50%,-50%);
    width: 500px;
    height: 300px;
    background: #fff;
    z-index: 2;
}
input[id*="popup"] + label + div > div >label{
    position:absolute;
    top: 0%;
    right: 0%;
    transform: translate(40%,-40%);
    padding: 20px;
    background: #dd5347;
    border-radius: 100%;
    z-index: 1;
}
input[id*="popup"] + label + div > label{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,.9);
    z-index: 1;
}
function Popup(){
    return(
        <div>
            <input type="checkbox" id="popup" />
            <label for="popup">View</label>
            <div>
                <div>
                    <label for="popup"></label>
                </div>
                <label for="popup"></label>
            </div>
        </div>
       
    )
}

export default Popup;

'개인 공부 or 오류' 카테고리의 다른 글

소스 트리 오류  (0) 2023.08.03
회원가입창  (0) 2023.08.03
복습, parameterMap, parameterType, resultMap, resultType  (0) 2023.08.02
MyBatis 연습  (0) 2023.08.01

git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks fetch --no-tags origin

git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks pull --no-commit origin dev
From https://github.com/citygray/groupStudy
 * branch            dev        -> FETCH_HEAD
error: The following untracked working tree files would be overwritten by merge:

 

 

 

https://sangnam2.tistory.com/entry/git-pull-%EC%97%90%EB%9F%AC-error-The-following-untracked-working-tree-files-would-be-overwritten-by-mergePlease-move-or-remove-them-before-you-merge

 

git pull 에러 (error : The following untracked working tree files would be overwritten by merge:Please move or remove them be

error : The following untracked working tree files would be overwritten by merge:Please move or remove them before you merge 문제가 되는 파일을 이동하거나 지우라는 뜻 이다. git add -A git stash git pull 해당 명령어를 입력하면

sangnam2.tistory.com

 

문제가 되는 파일을 삭제하거나 이동하라는 뜻

 
git add -A
 
git stash
 
git pull

'개인 공부 or 오류' 카테고리의 다른 글

모달창 구현 연습  (0) 2023.08.19
회원가입창  (0) 2023.08.03
복습, parameterMap, parameterType, resultMap, resultType  (0) 2023.08.02
MyBatis 연습  (0) 2023.08.01

조건문 <c:choose>, <c:when>, <c:otherwise>

<c:choose>는 Java 언어의 switch~ case와 비슷하게 여러 조건중에 하나를 선택한다. <c:choose>는 switch에 해당되고 <c:when>는 case에 해당되며, <c:otherwise>는 default에 해당된다.

 

controller주소는 .do

jsp에서는 .do안 붙여도 가능

 

로그아웃 컨트롤러에서 session을 제거

		HttpSession session = null;
		session = request.getSession(false);	//기존 세션 객체 존재시 반환. 없으면 null반환
		session.invalidate();
		return "/board/getBoardList.do";

 

오류1.

org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='id', mode=IN, javaType=class java.lang.String, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 부적합한 열 유형: 1111
### The error may exist in query/member.xml
### The error may involve com.mvc.member.dao.memberMapper.updateInfoForm-Inline
### The error occurred while setting parameters
### SQL: SELECT id, name, email, phone, regdate FROM member where id=?
### Cause: org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='id', mode=IN, javaType=class java.lang.String, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 부적합한 열 유형: 1111
	org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
	org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149)
	org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
	org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:76)
	com.mvc.member.dao.MemberMapperImpl.updateInfoForm(MemberMapperImpl.java:57)
	com.mvc.member.service.MemberServiceImpl.updateInfoForm(MemberServiceImpl.java:51)
	com.mvc.member.controller.UpdateInfoFormController.execute(UpdateInfoFormController.java:25)
	com.mvc.common.controller.DispatcherServlet.process(DispatcherServlet.java:51)
	com.mvc.common.controller.DispatcherServlet.doGet(DispatcherServlet.java:25)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:529)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
	com.mvc.common.util.EncoderFilter.doFilter(EncoderFilter.java:25)

return값을 안 줬다...ㅠㅠ

 

org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='id', mode=IN, javaType=class java.lang.String, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 부적합한 열 유형: 1111
### The error may exist in query/member.xml
### The error may involve com.mvc.member.dao.memberMapper.updateInfoForm-Inline
### The error occurred while setting parameters
### SQL: SELECT id, name, email, phone, regdate FROM member where id=?
### Cause: org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='id', mode=IN, javaType=class java.lang.String, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 부적합한 열 유형: 1111
	org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
	org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:149)
	org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
	org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:76)
	com.mvc.member.dao.MemberMapperImpl.updateInfoForm(MemberMapperImpl.java:57)
	com.mvc.member.service.MemberServiceImpl.updateInfoForm(MemberServiceImpl.java:51)
	com.mvc.member.controller.UpdateInfoFormController.execute(UpdateInfoFormController.java:25)
	com.mvc.common.controller.DispatcherServlet.process(DispatcherServlet.java:51)
	com.mvc.common.controller.DispatcherServlet.doGet(DispatcherServlet.java:25)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:529)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
	com.mvc.common.util.EncoderFilter.doFilter(EncoderFilter.java:25)

session으로 값을 가져와서 해주니 해결

 

부적합한 열유형

name, id 값 오타가 났다.

java.sql.SQLException: 부적합한 열 유형: 1111
	oracle.jdbc.driver.OracleStatement.getInternalType(OracleStatement.java:4031)
	oracle.jdbc.driver.OraclePreparedStatement.setNullCritical(OraclePreparedStatement.java:4182)
	oracle.jdbc.driver.OraclePreparedStatement.setNull(OraclePreparedStatement.java:4166)
	oracle.jdbc.driver.OraclePreparedStatementWrapper.setNull(OraclePreparedStatementWrapper.java:1008)
	java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.base/java.lang.reflect.Method.invoke(Method.java:568)
	org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:67)
	jdk.proxy3/jdk.proxy3.$Proxy8.setNull(Unknown Source)
	org.apache.ibatis.type.BaseTypeHandler.setParameter(BaseTypeHandler.java:65)
	org.apache.ibatis.scripting.defaults.DefaultParameterHandler.setParameters(DefaultParameterHandler.java:87)
	org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:94)
	org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:64)
	org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:88)
	org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62)
	org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
	org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
	org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
	org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:89)
	org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
	org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
	org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:76)
	com.mvc.member.dao.MemberMapperImpl.updateMember(MemberMapperImpl.java:38)
	com.mvc.member.service.MemberServiceImpl.updateMember(MemberServiceImpl.java:56)
	com.mvc.member.controller.UpdateMemberController.execute(UpdateMemberController.java:27)
	com.mvc.common.controller.DispatcherServlet.process(DispatcherServlet.java:51)
	com.mvc.common.controller.DispatcherServlet.doGet(DispatcherServlet.java:25)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:529)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
	com.mvc.common.util.EncoderFilter.doFilter(EncoderFilter.java:25)

 

update에서는 반환형이 int라 MemberVO를 반환해 주는 것이 아니라 int값을 반환해 줘야 한다.

mapper에서 쓰인

<update id="appTest">

update ~ set ~ 이 구문이

</update>

 

controller에 와서

int a = service.appTest(~)

a.put("success", (a==1));

 

 

이런식으로 오는 것을 발견했다.

아니, 리턴값이 없는데 갑자기 int...?

찍어보니 1을 리턴하는 걸 보고 읭했다.

 

찾아보니 insert, update, delete에는 resultType이 없고

row의 개수를 반환한다고 한다.

 

insert의 경우는 삽입된 행의 개수를 반환

update의 경우는 수정에 성공한 행의 개수를 반환(실패시 0 반환)

delete의 경우는 삭제한 행의 개수를 반환

 

즉, 저 구문은 update 성공시에 웬만하면 1을 반환하고

실패시는 0이므로 put에 success를 넣은 것

 

 Cannot invoke "com.mvc.common.controller.Controller.execute(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)" because "ctrl" is null

맵핑을 주석 처리 해놓은걸 해제 안했었다.

 

 

'개인 공부 or 오류' 카테고리의 다른 글

모달창 구현 연습  (0) 2023.08.19
소스 트리 오류  (0) 2023.08.03
복습, parameterMap, parameterType, resultMap, resultType  (0) 2023.08.02
MyBatis 연습  (0) 2023.08.01
  • parameterMap : 비즈니스 로직으로부터 전달 받은, SQL 구문에 사용될 매개변수를 담은 객체
  • parameterType : 비즈니스 로직으로부터 전달 받은, SQL 구문에 사용될 매개변수의 자료형
  • resultMap : 비즈니스 로직으로 반환할, 결과값을 담은 객체
  • resultType : 비즈니스 로직으로 반환할, 결과값의 자료형

parameterType을 사용하는 방법

  • 파라미터의 값으로 사용: #{변수명}
  • 파라미터 명으로 사용: ${변수명}

ajax은 화면 전환이 없다.

'개인 공부 or 오류' 카테고리의 다른 글

모달창 구현 연습  (0) 2023.08.19
소스 트리 오류  (0) 2023.08.03
회원가입창  (0) 2023.08.03
MyBatis 연습  (0) 2023.08.01

영속 계층의 작업은 항상 다음과 같은 순서로 진행

1. 테이블의 컬럼 구조를 반영하는 VO(Value Object) 클래스 생성

2.MyBatis의 Mapper인터페이스의 작성/XML처리 SQL작성시 ;가 없도록 작성

3.작성한 Mapper인터페이스의 테스트

XML을 작성할 때는 반드시 <mapper>의 namespace 속성 값을 Mapper 인터페이스와 동일한 이름을 주는 것에 주의하고, <select> 태그의 id 속성 값은 메서드의 이름과 일치하게 작성합니다. resultType 속성의 값은 select 쿼리의 결과를 특정 클래스의 객체로 만들기 위해서 설정합니다. XML에 사용한 CDATA 부분은 XML에서 부등호를 사용하기 위해서 사용합니다.

 

1. DB 테이블

테이블 제작

 

2. DTO 객체 제작(DTO로 테이블의 객체를 가져옴)

DTO란 Data Trasfer Object로 DB에서 데이터를 불러오거나 저장 할 때, 데이터를 담기위한 그릇이라고 볼 수 있다. 흔히 알고있는 VO(Value Object)와 거의 같은 의미이다.

 

DB에서 데이터를 조회 했을 때 데이터를 담기위한 객체

API나 뷰의 종류에 따라 원하는 값만 불러오도록 일부 멤버 변수를 제외해도 됨오토 시퀀스(자동값 증가)sql developer에서auto_increment는 insert될 때 자동으로 값이 증가한다.

 

 

'개인 공부 or 오류' 카테고리의 다른 글

모달창 구현 연습  (0) 2023.08.19
소스 트리 오류  (0) 2023.08.03
회원가입창  (0) 2023.08.03
복습, parameterMap, parameterType, resultMap, resultType  (0) 2023.08.02

+ Recent posts