mybatis 中我的 insert sql语句语法都写错了,但不报错只是存的值为空。有懂的看看

今天发现一个奇怪的问题,就是mybatis 中我的sql语句是这么写的
insert into cs_content(csId,content,time,name,channel) values(csId=#{csId},content=#{content},time=#{time},name=#{name},channel=#{channel})
_后来发现 是我的 values后(csid=#{csid}.....) 每个都多了个xx=。 应该是 (#{csid},......)
但很奇怪的是他不报错 我的数据库中存入的除了自增的id全为null,有大神懂这个是什么原因造成。。改好后,就正常,语法错误一般会报错的,问问有人知道不。。

0

15个回答

图片说明
自己试一下

0

mybatis sql如果报错项目会启动不了,直接启动报错,添加为空可能是你前台数据没有获取到,你可以加个断点走一下,看看你前端的数据是否获取到了

0
qq_29563343
舜坨 是 这里是这么写才是正确的 values(#{csid}) 我写成了 values(csid=#{csid}), 但他不报错,只是存的值为空,我就觉得很奇怪
一年多之前 回复

是 这里是这么写才是正确的 values(#{csid}) 我写成了 values(csid=#{csid}), 但他不报错,只是存的值为空

0
qq_29563343
舜坨 回复wanglikun132: 原理没有搞懂,大概知道是因为他只判别了前面的csid这个,没有里后面的#{csid} ,我觉得这些设定有点问题,应该报错才好
一年多之前 回复
wanglikun132
wanglikun132 问题解决了吗?我一般写添加都是直接复制自动生成的进行修改,这样就不会有一些奇葩的错误了
一年多之前 回复

应该是把csid=#{csid}整体当成前台参数,但是前台没有这个参数所以为null

0

mybatis 执行的SQL语句打印出来看下呗

0

mybatis中执行时的断点提示是什么,或者你本来的文件里就是空的。

0

你的参数传的时候没有指定,两种方法指定参数,使用@Param放在接口方法参数前面区分参数,或者在sql语句中列名=#{param第几个传入参数}

0

是不是没有注入,遇到过类似的问题,就是因为mapper没有注入导致的

0

你这个mybatis当做整体参数了,parameterType肯定找不到,所以null了

0

传递过来的实体类你确定是有值的吗?应该从头到尾都排查一遍,前端是否传递过来值,然后传递给mybatis是否有值传递过来

0
共15条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
使用mybatis向数据库插入不进数据并且不报错
今天在学习mybatis操作数据库时,发现程序运行成功,却一直插入不进数据。后来才发现是因为没有commit的问题,我原来以为session关闭之前它会帮我commit的,没想到并不是这样。 //添加用户 @Test public void Test02() throws IOException{ //配置文件 String resource = "conf.xml"; //加载配置
mybatis 执行sql有值,而返回值为null值
最近在使用mybatis查询数据库时,发现在pl/sql中单独执行sql时结果是有值的,但是在程序中拿到的却是null,相关配置如下:   (1)   <resultMap type="monitorTaskStatus" id="monitorTaskStatusMap">        <result column="BATCH_NUM" property="batchN...
让mybatis在执行SQL语句时可以插入null值
在mybatis中,SQL语句在插入时默认不允许插入null值,如果在页面中传过来null值,在插入操作时会报错 org.apache.ibatis.exceptions.PersistenceException: ### Error updating database.  Cause: org.apache.ibatis.type.TypeException: Error setting ...
Mybatis插入空值时,需要指定jdbcType
mybatis insert空值报空值异常,但是在pl/sql不会提示错误,主要原因是mybatis无法进行转换,解决方法:在insert语句中,增加jdbcType解决问题 <insert id="save" parameterType="Man"> <![CDATA[ insert into t_man (id, name, birthday...
mybatis中sql语句参数添加判断
在使用mybatis框架,在xml文件写sql语句时,我们经常会添加一些参数输入的判断条件, 一是为了控制非法参数传入导致程序报错,二是可根据不同参数传入实现sql语句的复用。 简单总结如下: 查询语句: 判断参数不为空 select  * from table1 where 1=1 and table1.colum1 = #{condition}   判断参数不为空字符串
mybatis 插入字段为空的处理
若待插入字段可能为空,则my
mybatis插入数据时处理为null的属性
在做项目的时候,数据库中的所有字段被设置为全都不能为null,但是在我们开发过程中,插入一些记录的时候,实体类中的一些字段如果页面没有传入,则默认就会被设置为null,这样的话,在执行插入语句的时候,数据库就会报错,说指定的列不能为null,这样数据就无法插入。 在网上找了一下,都没有这种处理的方式,但是找到了mybatis的类型转换,说的是在java中的类型和数据库中的类型不一致的时候,需要自
mybatis insert 插入字段为空解决办法
需求:当插入时,部分字段参数为空或使用实体类插入时部分属性无值,直接插入会报空指针 解决办法: <settings> <!--插入为空时插入空值避免报空指针--> <setting name="jdbcTypeForNull" value="NULL" /> </settings> mybatis配置文件加入setting即可解决空指针 ...
mybatis在insert时,实体类字段为null时,报错问题
今天遇到如题的问题,就是在mybatis 插入oracle数据库空值的报的异常: org.springframework.jdbc.UncategorizedSQLException: Error setting null parameter. Most JDBC drivers require that the JdbcType must be specified for all nul...
mybatis 传入的属性值为空时 报空指针异常
mybatis 传入的属性值为空时 报空指针异常 背景:在使用mybatis进行insert操作的时候,有个字段为null,插入时报了空指针异常的错误;在网上查找了方法,但并未解决。 网上的解决办法 1.在mybatis配置文件中加入以下配置: 2.在*Mapper.xml文件中,加入每个属性的类型: #{middleInitial,jdbcType=VAR
mybatis sql 语句非空判断
<insert id="insertRole" parameterType="com.xqjr.entity.db.Role"> insert into system_role (name,description,createtime,updatetime) values (#{name},#{description},#{createtime},#{updatetime})...
Mybatis怎么插入字段为null的记录
问题:Mybatis在做数据插入时,我们插入的数据常常不是完整的,有些字段是要允许为空插入的,那么在Mybtis中如何设置呢? 第一步: insert into table_name(_id,username) values(_id = #{_id,jdbcType=INTEGER},username=#{username,jdbcType=VARCHAR}) 加上jdbcType=”数据类
Mybatis中sql语句中的in查询,一定要判断null的情况
mysql中的in查询容易出错。
mybatis-动态sql语句-if用法
上一篇,初步了解了一下mybatis----mybatis-简介,我们已经了解mybatis进行调用的过程,这一次主要来说如何进行动态sql语句的拼写,这次主要讲解if的应用。 查询: 咱们接着上一篇博客说,依然选用根据模糊查询或邮箱查询 select user_name "userName", user_pa
出现控制台执行了插入语句,但是数据表为空的问题
用ssh框架做毕设的时候,明明控制台已经出现了插入的语句,但是数据库表有没有数据,在hibernate.save方法加了trycatch也没有异常抛出,原因原来是事务没有提交,在hibernate的配置文件加入<property name="connection.autocommit">true </property>,这一句话,问题得以解决,在此记录一下...
oracle+mybatis 使用动态Sql在要insert的字段不确定的情况下实现批量insert
最近做项目遇到一个挺操蛋的问题,由于业务的关系,DB的数据表无法确定,在使用过程中字段可能会增加,这样在insert时给我造成了很大的困扰。先来看一下最终我是怎么实现的: <![CDATA[ INSERT INTO tg_fcst_lines(${lineColumn}) select result.*,sq_fcst_lines.nextva
mybatis动态sql——if标签和设置映射方式处理插入null值
当遇到插入null值造成mybatis无法识别的情况时,我们可以通过设置映射的数据类型来处理,或者使用动态sql标签这两种方式来处理这种问题 1、通过设置映射的数据类型来处理:在#{}格式种加入数据类型声明,这样明确告诉mybatis遇到null时该如何处理 &amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt; &amp;lt;!DOCTYPE mapper PU...
Mybatis插入空值报错
今天在做单元测试插入测试数据的时候,发现有 报错。 Exception in thread "main" org.springframework.jdbc.UncategorizedSQLException: Error setting null for parameter #6 with JdbcType OTHER . Try setting a different JdbcType f
sql语句下的那些坑(mysql与mybatis环境)
一.mysql中的关键字首先要注意在表格命名的时候,不要命名mysql中的关键字,本人也是当时不知道哪些是关键字,导致在后续操作sql语句的时候一直报错,没有找到原因,比如我使用的dec,year_month这些都是关键字,具体的请查看这个表格mysql关键字二.mysql中的别名2.1  mysql表别名SQL 表别名        在 SQL 语句中,可以为表名称及字段(列)名称指定别名(Al...
MyBatis SQL语句汇总SUM值为Null时会抛出转换异常
单元测试过程中,出现如下错误: 解决思路: 1.如果没有用到公司的DAL组件并通过DAL组件实现分表,可以使用DB2的方言SQL的COALESCE命令进行判断是否为null,具体用法: COALESCE(SUM(ard.AMOUNT),0.0),如果SUM结果为NULL,则赋默认值为0.0 2.如果用到DAL组件的分表(DAL组件暂时仅支持标准SQL的解析),不支持C
【tk.mybatis】使用 tk.mybatis insert 插入数据时出现语法错误
使用 insert 插入数据时,发现 sql 语句语法有错误 发现这个与使用 mybatis-generator-maven-plugin 插件自动生成的代码有关,在生成的实体类上有一个 @Table 注解,发现注解值是 itoke-server-admin.tbsysuser 解决办法: 手动删除多余的数据库,只写上表名 ...
mybatis中insert语句动态sql篇
在mybatis中如何把insert语句改成动态入参; 原SQL语句如下: &amp;amp;lt;!-- 插入user方法一 --&amp;amp;gt; &amp;amp;lt;insert id=&amp;quot;addUser&amp;quot; parameterType=&amp;quot;user&amp;quot;&amp;amp;gt; insert into smbms_user(userCode,userName,userPassword,gender,addres
mybatis注解sql判断是否为空
@Options(useGeneratedKeys=true,keyProperty = &quot;id&quot;,keyColumn = &quot;id&quot;)     @Update(&quot;&amp;lt;script&amp;gt; update &quot;+Gather.TABLE_NAME+&quot; set status = #{status} &amp;lt;if test='remark!=null'&amp;gt; , remark = #{remark}...
Mybatis 插入对象时空值处理
Mybatis中经常会有插入数据的情景,有时传输的对象字段并不是完整的,如果不做任何处理则会抛出异常,影响程序执行。如存在对象赋值不完整的情况可以在字段后添加 jdbcType  如:INSERT INTO student(`uid`,`name`,`class`) VALUES(#{uid,jdbcType=VARCHAR},#{name,jdbcType=VARCHAR},#{class,jd...
mybatis 执行insert语句总是报错,ORA-00911 无效字符错误解决方法
这个错误是由于sql语句有问题,检查sql的时候没有看出什么问题,结果拿到pl/sql中执行没发现问题。查找资料后发现在库里查询时,查询语句结尾带了一个分号,库里面是支持这个分号的,但到mybatis 里面是不支持这个分号的,所以这点大家以后也应该注意下。       解决方法就是吧分号去掉就好了。
MyBatis配置文件中INSERT语句做插入时(Oracle)获取序列,dual关键字错写后会报如下错误信息
Error selecting key or setting result to parameter object. Cause: java.sql.SQLException: ORA-00942: 表或视图不存在
mybatis中写sql语句的注意事项--批量新增数据
&amp;lt;select id=&quot;&quot; parameter=&quot;list&quot;&amp;gt; insert into 表名        &amp;lt;foreach collection=&quot;list&quot; item=&quot;item&quot; index=&quot;index&quot;  open=&quot;(&quot;  close=&quot;)&quot;  separator=&quot;union all&quot;&am
MyBatis-模糊查询控制台不报错,但是得到的结果集合确是0的问题解决办法
1.今天在学习MyBatis框架的时候遇到一个问题,就是控制台不报错得到的结果集合确是0,下面用图片详细描述下问题:查询语句:测试语句:数据库数据:运行之后控制台语句:通过上面可以看到日志输出的控制语句,然后把MyBatis拼接好的sql语句放到数据库中,用来检查是不是语句的错误,得到的结果------不是。解决办法:修改数据库连接的URL。修改前:&quot;jdbc:mysql://localhost:...
mybatise框架sql语句中trim的使用
看到一块代码,第一次见到trim这种标签,于是开始研究了:<insert id="userRegister" parameterType="UserModel"> insert into user <trim prefix="(" suffix=")" suffixOverrides=","> <if test="userId>10000">
Mybatis之在mapper.xml中提前判断好字段是Not Null或非空字符串
①二者在一起写,&amp;lt;if test=&quot;channelId != null and channelId != '' &quot;&amp;gt;字段名=#{xxx,jdbcType=VARCHAR}&amp;lt;/if&amp;gt;,这种是最常用的。 ②这个取决于数据库中,该字段的约束。否则会报错。 1、 如果为NOT NULL,那么mapper.xml中必须要验证&amp;lt;if test=&quot; 字段名!=null  &quot;&amp;g...
mybatis中Oracle参数为NULL错误解决
在Mybatis操作Oracle数据库的时候(PS:mysql中不会出现),会遇到个小问题,当数据库为Oracle时候,插入某个参数数据如果为null,mybatis会报错,提示类型不正确,原因是当插入数据为null类型的时候,mybatis会自动转换为JdbcType.OTHER类型,因此需要修改一下参数的转换类型有两种方式可以解决:1.公共配置方法:在Mybatis配置中设置jdbcTypeF...
Ibatis insert语句中包含子查询问题
目录(?)[+] insert语句中包含子查询问题 Ibatis中的Insert语句,将values采用select代替 [sql] view plaincopy insert id="insertFaqContinue">          INSERT INTO FAQ (           dynamic prepend="">
myBatis sql 语句需要注意的问题
① 大于等于 &amp;lt;![CDATA[ &amp;gt;= ]]&amp;gt; 小于等于 &amp;lt;![CDATA[ &amp;lt;= ]]&amp;gt;
mybatis动态sql参数为实体类时出现的问题
记录一下自己遇到的问题,以便以后查阅问题描述void add(@Param("cartitem")CartItem cartitem);<insert id="add" parameterType="cn.wang.bookstore.cartitem.doamin.CartItem"> insert into t_cartitem(cartItemId,quantity,bid,u
mybatis 新增判断空
mybatis 动态新增     insert into com_coment           domain,       status,               gmt_created,                     gmt_modified,                     #{domain,jdbcType=INTEGER
mybatis insert 插入数据成功后返回值为 null
最近发现,使用ibatis的sqlMap.insert()方法时,不管怎么样,返回的结果总是null。那么如何让其返回最新插入的那条记入的id呢?     首先:   将原来的insert语句加上标签,如: [xhtml] view plaincopy insert id="insertUserByName">        
[简单]mybatis insert语句添加动态字段
      mysql数据库,id自增,配置如下:       &amp;lt;insert id=&quot;saveTestTb&quot; useGeneratedKeys=&quot;true&quot; keyProperty=&quot;id&quot; parameterType=&quot;TestTb&quot;&amp;gt; insert into db_ap_fgm_TestTb(id,traffic_type &amp;lt;include ...
Mybatis利用SQL insert标签时报错:无效的列类型
在SQL语句中做修改 <insert id="save" parameterType="com.neuedu.crm.entity.SalesChance"> insert into SALES_CHANCES (ID, CONTACT, CONTACT_TEL, CREATE_DATE, CUST_NAME, DESCRIPTION, DESIGNEE_DA
MyBatis学习总结(11)——MyBatis动态Sql语句
MyBatis中对数据库的操作,有时要带一些条件,因此动态SQL语句非常有必要,下面就主要来讲讲几个常用的动态SQL语句的语法 MyBatis中用于实现动态SQL的元素主要有: if choose(when,otherwise) trim where set foreach  1、if 对属性进行判断,如果不为空则执行判断条件
mybatis填坑之一:关于mapper中逗号位置的写法
写法一 &amp;lt;update id=&quot;updateRole&quot; parameterType=&quot;com.coship.web.uc.dto.RoleParam&quot;&amp;gt; update t_role set &amp;lt;if test=&quot;name != null and name !=''&quot;&amp;gt; name=#{name} ...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 大数据基础只是 懂c#学习java