Jdbc Type 형식 과 자바 형식의 대응 관계 와 tinyint 문제

JDBC Type Java Type CHAR String VARCHAR String LONGVARCHAR String NUMERIC java.math.BigDecimal DECIMAL java.math.BigDecimal BIT boolean BOOLEAN boolean TINYINT byte SMALLINT short INTEGER INTEGER BIGINT long REAL float FLOAT double DOUBLE double BINARY byte[] VARBINARY byte[] LONGVARBINARY byte[] DATE java.sql.Date TIME java.sql.Time TIMESTAMP java.sql.Timestamp CLOB Clob BLOB BLOB ARRAY Array DISTINCT mapping of underlying type STRUCT Struct REF Ref DATALINK java.net.URL[color=red][/color]
주의: 
tinyint 길 이 는 1 입 니 다. 즉, 유형 은 tinyint (1) 로 조회 할 때 이 필드 에 대응 하 는 자바 형식 은 boolean 입 니 다.
이 필드 의 자바 형식 을 Integer 로 설정 하 는 방법;
해결 방안:
1. jdbcUrl 에 인자 추가: tinyInt1isBit = false (기본 값 은 true);
2. 길이 가 1 인 tinyint 형식 필드 를 사용 하여 디지털 형식의 데 이 터 를 저장 하 는 것 을 피한다.
 
Mybatis 에서 도 필드 데 이 터 를 매 핑 할 때 Jdbc Type 속성 을 추가 하 는 것 을 권장 합 니 다.이렇게 하면 상대 적 으로 비교적 안전 하 다.
다음 과 같은 상황 은 앞의 네 가지 가 비어 있 으 면 안 된다 는 전제 에서 뒤의 몇 가지 가 비어 있 을 때 절차 가 잘못 되 지 않도록 하 는 것 이다.
 
    insert into role_p values (
         #{roleId},
         #{name},
         #{remarks},
       #{orderNo},
       #{createBy,jdbcType=VARCHAR},
        #{createDept,jdbcType=VARCHAR},
        #{createTime,jdbcType=DATE},
         #{updateBy,jdbcType=VARCHAR},
        #{updateTime,jdbcType=DATE}
    )

 

좋은 웹페이지 즐겨찾기