首页 > 编程语言 >java的jdbc插入的时候,遇到null情况报错问题

java的jdbc插入的时候,遇到null情况报错问题

时间:2023-09-14 23:15:45浏览次数:46  
标签:jdbc java time value 报错 NUMERIC jdbcType params VARCHAR

分析原因:

在执行SQL时MyBatis会自动通过对象中的属性给SQL中参数赋值,它会自动将Java类型转换成数据库的类型。而一旦传入的是null它就无法准确判断这个类型应该是什么,就有可能将类型转换错误,从而报错。

解决办法:

参数增加jdbcType标识数据类型。(注意:这时候参数{}前统一用#)

<insert id="insert_air_hour" parameterType="java.util.Map">
        insert into pollute_hour_gas(mp_id, update_time, data_time, create_time, pollutant_code, flag, outlet_standard, mstatus, astatus, estatus, sstatus, cou_value, avg_value, min_value, max_value, avg_zs, min_zs, max_zs)
        values
        (#{params.mp_id,jdbcType=VARCHAR},#{params.update_time,jdbcType=TIMESTAMP},#{params.data_time,jdbcType=TIMESTAMP},#{params.create_time,jdbcType=TIMESTAMP},#{params.pollutant_code,jdbcType=VARCHAR},#{params.flag,jdbcType=VARCHAR},
        #{params.outlet_standard,jdbcType=VARCHAR},#{params.mstatus,jdbcType=VARCHAR},#{params.astatus,jdbcType=VARCHAR},#{params.estatus,jdbcType=VARCHAR},#{params.sstatus,jdbcType=VARCHAR},
        ${params.cou_value,jdbcType=NUMERIC},${params.avg_value,jdbcType=NUMERIC},${params.min_value,jdbcType=NUMERIC},${params.max_value,jdbcType=NUMERIC},${params.avg_zs,jdbcType=NUMERIC},${params.min_zs,jdbcType=NUMERIC},${params.max_zs,jdbcType=NUMERIC})
    </insert>

 

下面表格列出所有的jdbc数据类型对照表:

 

标签:jdbc,java,time,value,报错,NUMERIC,jdbcType,params,VARCHAR
From: https://www.cnblogs.com/tiandi/p/17703753.html

相关文章

  • Java学习_009_for循环
    循环结构:组成:1.初始化语句:用于表示循环开启时的起始状态,简单说就是循环开始的时候是什么样子;2.条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能够一直执行下去;3.循环体语句:用于表示循环反复执行的内容,简单说就是循环反复执行的事情;4.条件控制语句:用于表示循......
  • Java学习_007_Switch语句
    需求:输入一到七的任意一个数,输出该数字对应的星期数。使用Switch语句:1importjava.util.Scanner;23publicclassMain{4publicstaticvoidmain(String[]args){5Scannersc=newScanner(System.in);6System.out.println("请输入一......
  • java---方法
    方法对一段功能代码进行集中管理,每个同学在某一时刻只做一件事情。单一职责。5.1方法的分类构造方法在创建对象时自动调用成员方法使用对象进行调用静态方法static使用类名进行调用()-->代表的就是方法5.2方法的创建语法:访问修饰符[static]返回值类型方法名([形式参......
  • Java数组遍历
    publicclassbianli{publicstaticvoidmain(String[]args){int[]arr={11,22,33,44,55};printArray(arr);}publicstaticvoidprintArray(int[]arr){System.out.print("[");......
  • Java学习_006_考试奖励
    需求:小明期末考试,小明的爸爸对他说,会根据他不同的期末考试成绩,送他不同的礼物,假如你可以控制小明的得分,请用程序实现小明到底该获得什么样的礼物,并在控制台输出。     奖励:95-100-----山地自行车一辆;  90-94------游乐场游玩一次;80-89----......
  • HBase学习5(HBase java编程:创建项目,创建删除表,数据增删改查)
    1.准备工作1.1创建IDEAMaven项目其中名字为hbase_op,groupid为cn.itcast然后导入pom依赖<repositories><!--代码库--><repository><id>aliyun</id><url>http://maven.aliyun.com/nexus/content/groups/public/</url>&l......
  • 本机hadoop version命令报错--JAVA_HOME is not set问题的解决
    问题描述输入hadoopversion命令显示JAVA_HOME没有配置,但是本机的jdk配置正常!问题解决编辑hadoop/etc/hadoop目录下的hadoop-env.cmd文件:将JAVA_HOME的值换成本机的绝对路径;保存退出,再次尝试:......
  • 个人项目:Java实现论文查重
    Java实现简易论文查重软件工程https://edu.cnblogs.com/campus/gdgy/CSGrade21-12作业要求个人项目作业目标学习PSP表格,简易实现论文查重功能github链接https://github.com/HelpmeOOUT/RWL/tree/main/3121005006PSPPSP2.1PersonalSoftwareProcessS......
  • java功能需要
    1.上传图片功能需要pom文件阿里云oss依赖<!--阿里云oss文件存储依赖--><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.15.1</version></dependency>app......
  • QSqlTableModel.insertRecord()报错"No Fields to update"解决记录 && QField构造
    问题的出现当我想向一个Table中插入一条记录时,我本能的想的是:QSqlTableModel是由一条一条的Record组成的,那么我先创建一个Record,并且赋予对应的值,然后再使用QSqlTableModel::insertRecord()插入就好了,代码如下:QSqlRecordrcd;rcd.remove(model->fieldIndex("id"));rcd.setValu......