java.sql.SQLException: 无效的列类型: 1111 (jdbcType相关)
2016-11-22 11:38
489 查看
转自:http://blog.csdn.net/stronglyh/article/details/45369611
Java.sql.SQLException: 无效的列类型: 1111
at Oracle.jdbc.driver.OracleStatement.getInternalType(OracleStatement.java:3900)
at oracle.jdbc.driver.OraclePreparedStatement.setNullCritical(OraclePreparedStatement.java:4406)
主要是配置文件sql的参数问题
比如
<select id="select_repair_list" parameterType="String" resultMap="car">
SELECT car_num
from car where car_id = #{id}
</select>
sql要改成
SELECT car_num
from car where car_id = #{id,jdbcType=VARCHAR}
如果id是数值 那么id = #{id,jdbcType=NUMERIC}
完毕
注意,一般用${all}时不适用jdbcType,如下:
a.xm like '%${all}%'
此时不能加jdbcType=VARCHAR
;
另外,这里的jdbcType也可以通过在mapper的配置文件中进行如下配置:
<resultMap
id="GuardianDeptMap" type="com.cdkj.correct.domain.Guardian">
<id column="PK_ID" jdbcType="INTEGER" property="pkId" />
<result column="dept_pk" property="deptPk" jdbcType="INTEGER" />
<result column="dept_name" property="deptName" jdbcType="VARCHAR" />
<result column="CREATE_PK" jdbcType="INTEGER" property="createPk" />
<result column="CREATE_TIME" jdbcType="VARCHAR" property="createTime" />
<result column="ADJ_PK" jdbcType="INTEGER" property="adjPk" />
<result column="OLD_PK_ID" jdbcType="INTEGER" property="oldPkId" />
</resultMap>
效果是一样的,一般采用第二种方法。
mybatis报错:java.sql.SQLException: 无效的列类型: 1111
Java.sql.SQLException: 无效的列类型: 1111at Oracle.jdbc.driver.OracleStatement.getInternalType(OracleStatement.java:3900)
at oracle.jdbc.driver.OraclePreparedStatement.setNullCritical(OraclePreparedStatement.java:4406)
主要是配置文件sql的参数问题
比如
<select id="select_repair_list" parameterType="String" resultMap="car">
SELECT car_num
from car where car_id = #{id}
</select>
sql要改成
SELECT car_num
from car where car_id = #{id,jdbcType=VARCHAR}
如果id是数值 那么id = #{id,jdbcType=NUMERIC}
完毕
注意,一般用${all}时不适用jdbcType,如下:
a.xm like '%${all}%'
此时不能加jdbcType=VARCHAR
;
另外,这里的jdbcType也可以通过在mapper的配置文件中进行如下配置:
<resultMap
id="GuardianDeptMap" type="com.cdkj.correct.domain.Guardian">
<id column="PK_ID" jdbcType="INTEGER" property="pkId" />
<result column="dept_pk" property="deptPk" jdbcType="INTEGER" />
<result column="dept_name" property="deptName" jdbcType="VARCHAR" />
<result column="CREATE_PK" jdbcType="INTEGER" property="createPk" />
<result column="CREATE_TIME" jdbcType="VARCHAR" property="createTime" />
<result column="ADJ_PK" jdbcType="INTEGER" property="adjPk" />
<result column="OLD_PK_ID" jdbcType="INTEGER" property="oldPkId" />
</resultMap>
效果是一样的,一般采用第二种方法。
相关文章推荐
- Cause: java.sql.SQLException: 无效的列类型: 1111(Mybatis中insert插入空值时,需要指定JdbcType)
- a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 无效的列类型: 1111
- 1111; nested exception is java.sql.SQLException: 无效的列类型: 1111
- Java.sql.SQLException: 无效的列类型: 1111
- Mybatis中javaType和jdbcType对应关系(解决无效的列类型 1111)
- java.sql.SQLException: 无效的列类型: 1111
- java.sql.SQLException [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名'*'无效
- SQL [ ]; SQL state [null]; error code [17004]; 无效的列类型; nested exception is java.sql.SQLException: 无效
- 1uncategorized SQLException for SQL []; SQL state [99999]; error code [17004]; 无效的列类型: 1111;
- mybatis向oracle添加数据报:java.sql.SQLException: 无效的列类型: 1111
- java.sql.sqlexception microsoft sqlserver 2000 driver for jdbc sqlserver 对象名 无效。
- mybatis报错:java.sql.SQLException: 无效的列类型: 1111
- SSM报错:java.sql.SQLException: 无效的列类型: 1111
- java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 ‘xxx’ 无效
- 使用iBatis中报 java.sql.SQLException: 无效的列类型异常
- com.microsoft.sqlserver.jdbc.SQLServerException: 不支持此游标类型/并发组合
- com.microsoft.sqlserver.jdbc.SQLServerException: 到主机的TCP/IP 连接失败。java.net.ConnectException: Connection refused: connect
- com.microsoft.sqlserver.jdbc.SQLServerException: 到主机的TCP/IP 连接失败。java.net.ConnectException: Connection refused: connect
- 使用sql 2005 jar 包替换 2000 jar包异常:com.microsoft.sqlserver.jdbc.SQLServerException: 不支持此游标类型/并发组合。
- java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver