mybatis 在语句中使用to_char时报错

MyBatis遍历字符串,在MyBatis使用特殊符号,Sql数据类型转换 文章目录前言一、MyBatis遍历字符串二、在MyBatis使用特殊符号Sql数据类型转换int转varcharvarchari转int总结 前言 这两天打代码在mybatis的数据库操作上 遇到了一些问题。其实主要还是数据库知识有点薄弱,是我菜了,所以写个博客做个笔记,西祠遇到就不会再懵逼了。 一、MyBatis遍历字符串 说到myBatis的遍历,我只想到mybatis遍历数组或链表,所以我的字段是字符串如“1,2,3”.所以我最先想到的是在调用Mapper接口时,吧该字符串转化成数组,传入mybat 阅读详情
1、报错原因

数据库是oracle,持久层框架是mybatis,使用如下语句时报错

<select id="tysb_pro.getControlByDealUser" resultClass="hashmap" parameterClass="hashmap">
		select c.approve_item,to_char(c.begin_date,'YYYY'),s.type_name,x.* from
		lzcity_approve_control_info c,appr_control_info_ex e,
		lzcity_approve_stuff_type s ,YWBD_KJT_ZRKXZ_XMXX_T x,
 		 <include refid="getSblshByDealUser"/> t
   		where t.business_id=c.control_seq and t.business_id=e.control_seq 
   		and e.item_type_id=s.type_id and t.business_id=x.sblsh
</select>

2、报错部分日志:

Cause: com.ibatis.common.beans.ProbeException: There is no WRITEABLE property named 'BEGIN_DATE,'YYYY')' in class 'java.lang.Object'

	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
	at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:203)
	at org.springframework.orm.ibatis.SqlMapClientTemplate.queryForList(SqlMapClientTemplate.java:310)
	at com.minstone.api.tysbpro.dao.TysbProDao.getControlByDealUser(TysbProDao.java:411)
	at com.minstone.api.tysbpro.service.impl.TysbProControlServiceImpl.getListDataForUnit(TysbProControlServiceImpl.java:69)
	at com.minstone.api.tysbpro.controller.TysbProController.getListDataForUnit(TysbProController.java:1535)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:743)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:672)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:82)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:919)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:851)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:953)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:844)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:829)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at com.minstone.common.filter.CommonServiceRequestFilter.doFilter(CommonServiceRequestFilter.java:45)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at com.minstone.base.filter.SessionFilter.doFilter(SessionFilter.java:23)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:106)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1115)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
	at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2555)
	at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2544)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:744)
3、解决办法

在to_char(c.begin_date,'yyyy')后添加别名,如果不添加别名,mybatis会将to_char(c.begin_date,'yyyy')这一整块内容当成一个字段处理,所以导致了错误。

<select id="tysb_pro.getControlByDealUser" resultClass="hashmap" parameterClass="hashmap">
		select c.approve_item,to_char(c.begin_date,'YYYY') year,s.type_name,x.* from
		lzcity_approve_control_info c,appr_control_info_ex e,
		lzcity_approve_stuff_type s ,YWBD_KJT_ZRKXZ_XMXX_T x,
 		 <include refid="getSblshByDealUser"/> t
   		where t.business_id=c.control_seq and t.business_id=e.control_seq 
   		and e.item_type_id=s.type_id and t.business_id=x.sblsh
</select>

解决mybatis使用char类型字段查询oracle数据库时结果返回null问题 主要介绍了mybatis使用char类型字段查询oracle数据库时结果返回null问题的解决方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 立即下载

相关推荐

机器学习第五章之决策树模型

机器学习专题系列

wangyutao12345的博客 5187

Mybatis日常问题TO_CHAR(deliveryTime,‘yyyy-mm-dd hh24:mi:ss‘)

== dgdfgs == public int insertPayDetailInfo(@Param(“serialNumber”) String serialNumber,@Param(“list”) List longDistancePayOaDetailDtos); INSERT INTO UF_CYHTZFSHLCZJB_DT1 ( LSH,MXBH,DZLX,HTZFLX,FCBH,FCSJ,HTJE,YFJE,SFJE,BZGS,KKLX,CP

XiXavier的博客 3558

C++笔试题整理

目录 1. 笔试题1 1.1 链表反转 1.2 String 2. 笔试题2 2.1 求下面函数的返回值(微软) 2.2 什么是“引用”?申明和使用“引用”要注意哪些问题? 2.3 将“引用”作为函数参数有哪些特点? 2.4 在什么时候需要使用“常引用”?  2.5 将“引用”作为函数返回值类型的格式、好处和需要遵守的规则? 2.6 “引用”与多态的关系? 2.7 “引用”与指针的区别是什么? 2.8 什么时候需要“引用”? 2.9 结构与联合有和区别? 2.10 下面关于.

星月相随的专栏 2485

Mybatis笔记整理

前期知识准备:java基础、mysql基础、xml语法规则、maven 一.简介 什么是Mybatis? MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 简单来讲,就是可以通过xml和注解的方式,方便进行jd

qq_43538493的博客 780

DC-DC 转换器中的压电谐振器:当前状态和限制

在功率转换器应用中,居里温度较低的谐振器的 k 2和 Q M显着降低会导致效率降低,需要仔细的热处理。由于使用 PR 的功率转换器在不同的条件下运行,包括温度范围、电压偏置和功率电平,因此不可避免地会出现非线性效应,必须妥善解决这一问题,以免影响转换器的性能。等效电路模型(Butterworth Van-Dyke 或 BVD 模型)将压电谐振器在其机械谐振附近的电响应转换为一个简单电路,该电路由与由电极形成的输入电容 C 0并联的串联 RLC 动分支组成,见图图 1 还显示了阻抗与频率的关系。

2301_79716471的博客 1299

Silvaco TCAD | GaN HEMT器件仿真与高频功率应用实战

本文详细介绍了使用Silvaco TCAD进行GaN HEMT器件仿真的全流程,涵盖器件结构设计、极化效应建模、高频特性分析及功率损耗优化。通过实战案例展示了GaN HEMT在电动汽车电驱和快充模块等高频功率应用中的性能优势与效率提升策略,为工程师提供可靠的仿真方法与设计验证手段。

desk3的博客 184

mybatis中进行时间范围查询

数据库时间类型为DATETO_CHAR 把日期或数字转换为字符串TO_DATE 把字符串转换为数据库中的日期类型 TO_DATE(char, ‘格式’)TO_NUMBER 将字符串转换为数字 TO_NUMBER(char, ‘格式’)

weixin_43811057的博客 1万+

面板数据门槛归回分析,xthreg的安装,xthreg2安装包

我用的是Stata17,数据是不平衡的面板数据,需要用到xthreg2,虽然我找到了xthreg2.ado,但是还需要安装xthreg,因为运行xthreg2需要xthreg包顺带安装的lxthreg.mlib文件。但是!我后来发现还是不行,最后是去买了一个真正能用到xthreg2的lxthreg.mlib文件,才可以运行。

weixin_55252589的博客 1万+

ORACLE to_date和to_char在mybaties中的问题

记录一个问题: 数据库oracle,数据库操作使用mybaties,进行分页模糊查询时(模糊查询时使用的to_char(columName,‘yyyy-MM-dd’) 函数),entity和数据库字段startDate都是Date类型,进行查询时,startDate参数类型使用String,使用Date类型时,mybaties抛出“文字与格式不匹配” to_date(‘param’,‘yyyy-MM-dd hh24:mi:ss’)同样的,使用mybaties时,传入参数得时String类型 很简单,SQL

test_00的博客 1319

【AI编程】2025年16款主流AI编程工具全维度测评及选型指南

2025年16款主流AI编程工具全维度测评及选型指南

funfan的博客 1万+

【YOLOv8科研级优化】集成YOLOv10的SCDown采样模块,让你的模型下采样更高效更精准

打开确保模型解析器能识别SCDown模块。通过将YOLOv10的SCDown模块集成到YOLOv8中,我们实现了一个“细节保留+高效下采样”的目标检测模型。这个改进不仅在工程上能提升小目标、细粒度场景的检测效果,更在科研上提供了“分阶段下采样”的创新思路——这种思路可以延伸到其他卷积网络(如ResNet、MobileNet)的下采样层改进中,帮你在论文中打造独特的研究点。

m0_71589036的博客 138

Mybatis 转义字符与 函数

Mybatis转义字符 也可以用另外一种,就是<![CDATA[ ]]>符号。 在mybatis中这种符号将不会解析,用于标签冲突 <![CDATA[ when min(starttime)<='12:00' and max(endtime)<='12:00' ]]> 函数 1.ROWNUM Oracle中的rownum一般是在实现分页查询时用到,要求返回表中的前n条记录或者是中间的几条记录 参考:https://blog.youkuaiyun.com/mitedu/ar

寒潭清 1449

使用 YOLO26 的牙科全景X光片分析:从牙齿检测到疾病诊断

从数据预处理自动化、模型架构针对性优化到基于视觉特征的性能分析。它证明了在医学图像分析中,模型架构的进步(如YOLO26的特性)可以有效缓解数据不平衡和目标微小的问题,为临床自动化诊断提供了一个高效、可靠的解决方案。Python"""全局配置模块包含数据集路径、类别名称、论文复现参数、划分比例等常量"""import os# ==================== 路径配置 ====================

u012133341的博客 102

oracle to_char 转换日期遇到0000-00-00 问题

SELECT p.PATIENT_ID AS "patientId", UTL_RAW.CAST_TO_RAW(p.NAME) AS "patientNameByte", p.ID_NO AS "idCardNo", -- NULL AS "outPatientNo", p.INP_NO AS "inPatientNo", p.DATE_OF_BIRTH AS "b...

gp2022的博客 1888

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Oracle缺失表达式及用to_char、to_date的时候,报无效数字错误解决

概述 一般是不小心会出现的问题 错误解决 在oracle中,有时候会遇到缺失表达式的错误,检查一下是不是,逗号多加了、逗号写错位置了或者字段少写了,这些都是会引起表达式错误 在用mybatis写时间查询的时候,需要使用 to_date(to_char(#{startTime},'yyyy-MM-dd hh24:mi:ss'),'yyyy-MM-dd hh24:mi:ss'), 进行时间查询,否则mybatis会报错, 但是如果在navicat中做数据库在对时间进行查询的时候,使用 to_date(to_c

weixin_40598838的博客 8774

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

mybatis/mybatis-plus中mysql报错

在表设计的时候,应该综合考量后续扩展性,见名知意的字段特性,以及避免使用mysql的保留关键字,这样能减少不必要的错误。

学海无涯,我用JAVA 3265

oracle to_char 和 to_date的区别,斜杠和横杠日期转换,mybatis中入参日期,数据库字段是date的写法,to_timestamp,timestamp(6)

oracle to_char 和 to_date的区别,斜杠和横杠日期转换,mybatis中入参日期,数据库字段是date的写法,to_timestamp,timestamp(6)

enthan809882的博客 5059

sql语法 日期函数,TO_DATE,TO_CHAR,STR_TO_DATE, DATE_FORMAT, >=,TRUNC

简单记:Oracle 用 TO_DATE / TO_CHAR,MySQL 用 STR_TO_DATE / DATE_FORMAT,功能一一对应,只是函数名和格式符写法不同。

hanker的博客 276

Mybatis中sql语句报错无效参数类型问题

报错mybatis无效参数类型问题,mybatis中sql语句的参数,如果这个参数可以为空,那么则必须添加jdbcType,否则将报错无效参数类型。 Mybatis文档中有如下解释: 像 MyBatis 的剩余部分一样,javaType 通常可以从参数对象中来去确定,前提是只要对象不是一个 HashMap。那么 javaType 应该被确定来保证使用正确类型处理器。 NOTE如果 null...

redhat0921的博客 2203

使用 tk.Mybatis 做查询报错ORA-00932: inconsistent datatypes: expected - got CLOB

同事做查询接口的时候,遇到一个bug,错误信息是: ORA-00932: inconsistent datatypes: expected - got CLOB 这个看起来就很玄乎了,不过似乎和clob有关。百度了一下,都说是clob在定义sql的xml文件里面,不能直接像VARCHAR来用,应该用to_char做转换。问题是,我们并没有写xml,而是使用了tk.mybatis的通用mappe...

You can't stand me now 7030

mybatis动态标签where和if的使用及使用它们进行oracle的时间查询

概述 项目中通常来说是经常会用到动态去拼sql,那么经常会使用到where和if对数据库进行时间查询,下面对where和if的使用及sql语句的改造做一个简单的探究 动态标签 <where> <if test="state != null"> state = #{state} </if> <if test="title != null"> AND title like #{title} &l

weixin_40598838的博客 2461

mybatis oracle进行时间计算时报错:ORA-00907: 缺失右括号

在监控数据库某个表中是否存在过期数据时,用到了sysdate- interval xx minute的写法。在mybatis中这样写: <select id="countXXXX" parameterType="xxxx.MonitorParamInfo" resultMap="BaseResultMap"> select <include refid="Base_Column_List" /> from LOG_T

mindtra的博客 1261

mybatis 参数判断报错的问题

if test="brandCustomer == '是'"><if test="brandCustomer == '否'">-- 是否品牌客户 品牌字段不为空 -->-- 是否品牌客户 品牌字段不为空 -->'是'.toString()'否'.toString()因为'' 会转为char。

fengbin2005的专栏 425

mybatis中时间类型的比较

今天测试新功能,发现程序的语句不报错但是无返回值,把sql拷贝到mysql中直接执行却有数据,应该是mybatis和mysql解释语句的方式有所不同导致,最后改了写法就可以了。 错误写法: select <include refid="Base_Column_List" /> from wf_ext_task_timing where timing_status = 1 <![CDATA[ and task_due_time <= #{dueTime,jdb

zpfzly的博客 4361

mybatis整合oracle查询datetime类型字段报错

问题: 同一个sql语句放在oracle中可以正常执行,但是在mybatis框架中会报错:ORA-01722: 无效数字或者字符串与数据类型不匹配 解决 将变量转换成字符串类型: g.UPDATETIME >= TO_CHAR(TRUNC (SYSDATE)), g.CHECKDATE >= TO_CHAR('2021-01-01 00:00:00')) ...

qq_24281575的博客 523

mybatis 插入空值时报错 TypeException

报错内容:nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='transferPersitionTime', mode=IN, javaType=class java.lang.Object, jdbcTy...

weixin_30477797的博客 444
上一篇: 进入页面时,初始化radio/checkbox组件
下一篇: 使用java.util.zip包进行压缩文件时,压缩包内的文件的文件名乱码
noName_code
博客等级 码龄11年 4粉丝 6原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值