如数据库中某字段varchar2(50),mybatis怎么能处理这个字段 5C
就是mybatis在插入这字段的时候,怎样做能判断要插入的数据是否超出了定义的长度?还是说只能插入的时候自己写代码每次都判断一下是否超出长度?

18个回答

两种办法:
1.超出长度的时候,后台会出现一个字符串过长的异常,你可以捕获这个异常返回给前端!
2.传过去的字符串长度在定义的长度范围以内。

通常做开发采取第二种,因为一般来说,需要插入的数据在用户在前端输入的时候就应该限制的,做好用户的体验至关重要!

java代码中取String字段长度直接就.length可以,mysql中用char_length 来取字段长度
建议在入参的时候校验字段长度
也可以再不校验,然后捕获异常

cengjiangGH
cengjiangGH 不应该在前段直接就限定死呀,超出就不让提交
一年多之前 回复
zhuanjiyinxiaobendan
zhuanjiyinxiaobendan 正解
一年多之前 回复

在插入的时候判断下该数据是否超出该字段长度,超出长度则抛异常并给提示信息

有需要的话,一般在参数处理的时候就会校验参数的长度,即使不校验的话,插入的时候mybatis也会抛出异常。
最好是系统设计的时候,就定义好字段的length,有必要就校验器校验一下。

校验下长度,返回异常

两种办法:
1.超出长度的时候,后台会出现一个字符串过长的异常,你可以捕获这个异常返回给前端!
2.传过去的字符串长度在定义的长度范围以内。

通常做开发采取第二种,因为一般来说,需要插入的数据在用户在前端输入的时候就应该限制的,做好用户的体验至关重要

mybatis是检验不了的,因为mybatis也不知道数据库字段是多长的,只有数据库自己知道,所以最好还是在程序中自己校验一下,或者是捕获数据库异常。

mybatis是检验不了的,因为这个只有数据库才知道这属性

数据库插入时会报异常并反馈给mybatis,日志中可查看具体的堆栈信息。

两种办法,如果你数据库里面设计的时候规定长度小于50,而添加的时候实际长度大于50,页面会直接报错500,可以通过MVC吧500页面拦截下来转到你指定的错误页面

或者就是写代码,插入数据的时候判断下数据长度,大于50插入失败

共18条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mybatis中对数据库中字段值唯一处理
<!-- <insert id="saveHeartBeatLog" parameterType="java.lang.String"> INSERT INTO t_demc_heartbeatlog (ComponentID, HeartTime) VALUES (#{ComponentID},NOW()) ON DUPLICATE KEY UPDA
如何把TXT文件按字段插如数据库中?
如何把TXT文件按字段插如数据库中?rnORG CARD NUMBER SEQ REASON rn102 0004062522813118817 0001 04 rn102 0004062522813281904 0001 04 rn102 0004062540000058612 0001 04 rn102 0004062540000058638 0001 04 rn103 0006226580001913462 0001 04 rnTOTAL ERROR RECORD:00000005 rnrn如何按空格拆分字段,插入到数据库中rn希望能有实例代码?
对数据库中某字段的判断操作!
呵,标题好像有些词不达意~:)rn我想要的是这样的效果:在某个表中我设定了一个关键字段,在进行查询时只需要直接在查询语句中写入某个关键字进行判断就可以了。比如:rnselect * from new where key= '"&test&(test为数据库中已写入的字段)"'" 好像test应该用某个vbscript的函数进行转换,可是我却不知道该用哪个,:( 所以……请指教!
获取varchar2字段的长度
列:我有表 A,他有3个字段 COL1,Col2,Col3 他们的都是 varchar2(10) 我就是想通过Sql获取这个字段长度 “10”rnrn我想把表结构当做配置文件进行通信数据的字符串解析,所以必须知道每个列的最大长度是多少。。。rnrn小弟不才,请教各位高手!rnrn先谢过各位跟帖的帅哥美女!
Mybatis大字段clob处理
1. 实体类View package com.ttt.sysManager.po; public class View { private String VIEW_NAME; private String TEXT_LENGTH; private String TEXT; private String EDITIONING_VIEW; private String READ_ONL
mybatis拦截器处理敏感字段
利用mybatis拦截器对数据库敏感字段加解密前言思路解析代码趟过的坑(敲黑板重点)结尾话 前言 由于公司业务要求,需要在不影响已有业务上对 数据库中已有数据的敏感字段加密解密,个人解决方案利用mybatis的拦截器加密解密敏感字段 思路解析 利用注解标明需要加密解密的entity类对象以及其中的数据 mybatis拦截Executor.class对象中的query,update方法 在方法执行...
mybatis 大字段问题处理
org.springframework.jdbc.UncategorizedSQLException: ### Error updating database. Cause: java.sql.SQLException: ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值### The error may involve com.extr.persistence.ExamPape
查询表中某字段
[code=PHP]rninclude("conn.php");rn $sqluser="select count(1) from adminuser where UserName=".$_POST["tUserName"];rn echo $sqluser;rn $queryuser=mysql_query($sqluser);//用户名rn if($rowUser==false)rn{rn 。。。。。。。。。。。。。rn}rn[/code]rn$sqluser打印出来的结果是这样子:rnselect count(1) from adminuser where UserName=Admin123rnrn正确的形式是这样子:rnselect count(1) from adminuser where UserName=‘Admin123';rnrn $sqluser="select count(1) from adminuser where UserName=".$_POST["tUserName"];rn这样写格式不对,要怎么样。。。谢谢哪位帮忙看看rnrnrn
倒如数据库ASA中
把一个文本文档(写字板)中东西倒如数据库ASA中rnrn只把文本文挡前两列到如指定的表指定的列当中。rn
varchar2(50)字段写入中文数据,报错是为什么
ORA-00984 错误 column not allowed here 我写入数字和字母貌似就不会出错?rn这是为啥呢?
oracle中怎样修改varchar2字段为clob字段
oracle中怎样修改varchar2字段为clob字段,sql语句改怎么写呢?
如何将CLOB类型字段的值转到VARCHAR2类型的字段中?
如:rnrn1、建立一个包含有clob和varchar2两种字段类型的表:rnrnCREATE TABLE T1(rnID NUMBER PRIMARY KEY,rnTXT1 CLOB,rnTXT2 VARCHAR2(4000));rnrn2、向表中插入记录rnINSERT INTO T1(ID,TXT1) VALUES(1,'CLOB TEST');rnCOMMIT;rnrn如何将使txt2字段的值等于txt1字段中的字符串"CLOB TEST"呢?rn我这样试过了,不行.rnrnSQL> update t1 set txt2=txt1;rnupdate t1 set txt2=txt1rn *rnERROR 位于第 1 行:rnORA-00932: 数据类型不一致rn
如何将clob字段改为varchar2
改表已经有记录了rn怎么样改呢?rn最好不要删表重建rnrn谢谢各位
oracle字段Varchar2长度问题
在设计表的时候,设计了一个未来可能会使用的字段,varchar2类型,长度较长。因为目前不会使用,因此想到这样设计会否暂用额外空间。根据VARCHAR2的定义,为可变长 度的字符串,因此应该不会占用多余空间,在找了一些资料之后,验证了这个结论。但是会否影响插入或者查询效率呢,本人没有研究过数据库底层原理,但基于基本的逻辑判断 以及对数据库的信任,拍脑袋判断影响不大。    因此,在8
关于oracle 字段varchar2的问题
比如一个字段是varchar2类型.长度设置为 32.rnrn那么,我使用C#,编程,那么我能将一个 string.Length = 32 的字符串存入该字段吗? rnrn为什么?
在ORACLE中,如何将LONG字段转换成Varchar2
我想将数据库内的Trigger生成出来,Trigger的数据保存在User_triggers表中,其中trigger的内容存放于字段Trigger_body中,该字段的数据类型为LONG,这个类型比较特殊,在执行语句 Select 'Create or Replace Trigger'||Trigger_Name||Trigger_body 时会报错,说是类型不一致。rn请问各位大虾有何良策?
Oracle中varchar2字段的不可见字符处理
在以前的项目中,曾经出现加密后的字符串数据丢失,加密内容无法正常解密的情况,经查找原因,发现是数据库表的varchar2字段中有chr(0)的不可见字符(即我们通常所说的\0),当出现这种情况时,由于java和c++中对字符串处理的不同,将会导致所取得的字符串长度不同。在java中,字符串的长度可以通过取字符串的字节数组来获得,这样得到的字符串长度为字符串实际的大小(汉字2个字节,其他1个字节);...
Oracle中VarChar2字段的长度问题
我在Oracle Enterprise Manager Console中将字段A的长度由20改成了50,并且在Oracle Enterprise Manager Console中可以为字段A输入少于50个字符的内容。但是我还有一个Delphi程序,用到了AdoQuery和DBGrid。在程序中,我用AdoQuery.FieldByName('A').Size获得的A的长度依然是20,而且用AdoQuery.FieldByName('A').AsString插入内容的时候,也只能插入不多于20个字符的内容。不知道是怎么回事?请高手们救命!谢谢啦!
如何处理实体EJB字段和数据库字段的映射关系?
我使用wsad 5数据库是oracle 9i开发实体bean。如何处理实体EJB字段和数据库字段的映射关系?rnEJB字段类型为java.lang.Long,数据库是number字段;rn java.sql.Date datern java.sql.timestamp datern java.lang.Float numberrn java.math.GigDecimal numberrn另,实体bean里的关键字段,必须对应数据库里的关键字段吗?如果该字段在数据库里是索引,可以吗?
日志写如数据库
http://blog.csdn.net/ziruobing/article/details/3919501
如何处理字段中的“'”?
oracle中要向一列中加入一字符串,须这样写:'字符串'。现在,我要加入的字符串本身就有“'”,怎么办?
初学者请教asp.net2.0中读数据库中某字段方法
asp.net 1.1中connection,command等方法的代码还将就能看懂,到了asp.net 2.0;vs 2005就搞不懂了,用VS 2005 SqlDataSource控件创建的数据源,完全搞不懂怎么用,比如我用vs2005 SqlDataSource控件创建一个数据库连接,只取两个字段“序号”“备注”,主健“序号”,用where 序号=1,然后我该怎么写代码,单独取出“备注”字段的值赋入一个变量呢???源码附下面,望达者指教,谢谢!!能帮我把代码写出来最好,再谢!!! rn<%@ Page Language="C#" %> rnrn rnrn rnrn rn rn 无标题页 rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn
如何到如数据库
如何把.sh文件,到如数据库呀rn???rn
如何将文本内容到如数据库
我这里有1000个网页,格式相同,需要将网页上的数据导入到数据库请问如何做?rn1000个网页使用数据库生成的,不多现在没有原始数据库了rn
图片如数据库的问题
upimage.asprn<%rnFormSize = Request.TotalBytesrnFormData = Request.BinaryRead( FormSize )rnrnfunction ImageUp(formsize,formdata) rnbncrlf=chrb(13) & chrb(10)rndivider=leftb(formdata,instrb(formdata,bncrlf)-1)rndatastart=instrb(formdata,bncrlf&bncrlf)+4rndataend=instrb(datastart+1,formdata,divider)-datastartrnimageup=midb(formdata,datastart,dataend)rnend functionrnrnImage=ImageUp (FormSize,Formdata)rnset rs=server.CreateObject("adodb.recordset")rnset cn=server.createobject("adodb.connection")rncn.connectionstring="file name=" & "d:\wwwroot\test.udl"rncn.openrnrs.Open "tu",cn,1,3rnrs.AddNew rnrs(0)=2rnrs("tu").appendchunk Imagernrs.Updaternrs.Closernresponse.contenttype="image/gif" rnresponse.binarywrite imageup(formsize,formdata)rnrn%>rn rnPlease choose a picture to upload: rn rnrnrnrn这样做图片入库了,我把id 号写为了2的记录中rn但总不能总这样写把?rnid和其他信息怎么提交呢?rn又怎样处理呢?rn我的程序被卡住了,请各位高手帮帮忙rn不胜感激
倒如数据库
求代码或者方法:rnrn把一个文本文档(写字板)中东西倒如数据库rnrn只把文本文挡前两列到如指定的表指定的列当中。rnrn急rn rnrn数据库是asa的rn rn
表的一个字段由varchar2(50)改为varchar2(200)后,只要输入的字符超过50就会让这个表所有字段不能update,delete
Oracle数据库中一个表的一个字段由varchar2(50)改为varchar2(200)后,只要输入的字符超过50就会让这个表所有字段不能update,delete,rnrn请高手帮忙解决一下,前提条件是表里的数据不能破坏rn Thank you !
字段处理
一、如果页面有下拉框而且数据是固定的少数的几个值的时候就不需要再去创建子表,然后再连表查询的操作步骤了。 像这种下拉框,我们在数据库设计的时候不需要建子表再用外键去连接,因为在这个项目里面就学生、教师、管理这三个身份,可以直接在页面下拉框进行绑定,给value设定固定的值,当下拉框被选中的时候就会返回绑定的值,再判断返回的值是哪个,将对应的身份填到数据库里面。 在表格添加自定义列{ title...
Mybatis属性和数据库表字段不一致处理
mybatis中实体属性和表字段不一致处理方式      方式主要有两种:1.设置别名; 2.将结果映射成单独的resultMap           1.开发环境      jdk1.7 eclipse4.5 mysql5.7 mybatis3.3      2.项目结构图           3.pom文件 <project xmlns="http://maven.ap
Mybatis 查询Bean不包含字段的处理
1. 创建新的POJO,包含全部查询结果所需字段; 2. 创建 Mybatis 别名,在 XML 配置文件中添加别名; 3. 创建 ResultMap,在执行查询的 Mapper 之中添加与 POJO 相对应的 type,并自己编辑 column 及 id 值; 4  为查询结果字段添加别名,需要与 column 和 id 相对应。
mybatis的实体和表字段不一致的处理
public class Instance extends BaseModel{ private Long id; private String name; private String desc; private String isDelete; private String area; private String url; private Long orgId;
varchar2(50)和varchar2(4000)的区别有多大?
除了存储空间,varchar2(50)可以存储50个,varchar2(4000)可以存储4000个,它们都是变长的。rn问:rnrn1.他们如果都存储一样的字符串。例如 'aaa', 浪费的空间是一样多的吗?rn2.在查询时的速度是不是一样的?rn3.应用时的效率会有多大区别呢?rnrn谢谢。
我想把保存在数据库某字段中的HTML代码显示出来....
某字段里的内容时HTML代码,用什么方法把它显示出来???rnrn
在数据库中某字段插入sql语句的问题!
我想在一个数据库表中用一个字段来存储系统用于操作的一些sql命令!rn但是在每次插入的时候老是出现语法错误,后来查了是单引号引起的,但是如rn果改变语句中的单引号的话,这条sql语句就错了,请那为大哥给帮个忙,在不改rn变当前sql语句的情况下把它顺利的插入到数据表中。小弟不才,想了许久没想rn到办法。在此先谢谢各位了。rn
提出在数据库中某字段的值包含 '你好'的纪录
rn我想提出在数据库中某字段的值包含 '你好的'纪录。请问,语句如何写?rn我写一个,但是提示错误rnsql="select * from einf where instr(dise,'你好)>0 order by id desc"rn rs.open sql,conn,1,1rnrn错误提示:Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14' rnrn[Microsoft][ODBC SQL Server Driver][SQL Server]'instr' 不是可以识别的 函数名。 rnrn/ind.asp,行454 rn rnrn
更新表中某字段的某部分内容
在我们执行更新操作时,往往要更新一个指定字段的某部分内容,那么我们可以使用replace函数来执行这个操作。使用:语法:UPDATE 表名 set 字段名 = REPLACE(字段名,'要替换的内容','替换成的内容');实例:以下为测试表,表名称为:“text_log”idtext1这是一段话,讲述的是我们的故事。2这是一段话,讲述的是他们的故事。我们想把id为1的text字段的内容某部分内容替...
怎么能取出summary中的字段的值
尤其是在分组的情况下,怎么判断是哪一组的
求数据库字段设计
现在要在ACCESS的表中存入一串字符串,想把长度限制在400个字节,但ACCESS的文本类型最大长度为255,如果选择备注类型(最大长度65535),但我使用不了这么大的长度,rn请问1、如果使用备注类型,每次操作的数据量最大只有400个是否会影响效率,是否会占用更多的磁盘空间rn2、如果使用备注,能否限制字符的长度rn3、除了备注类型,还有其他方法吗
读数据库二进制字段
假设有这样一个表 test rn 字段 类型rn id intrn test1 binary(10)rnrn我想写条查询,如字段test1等于什么,但是因为test1字段类型为二进制数据类型,请问怎么样在后台来写。。。rn我用的是.net C# 请大侠门帮忙
读数据库的字段到TStringList
从一个表中读两个子段,a1,a2,读到TStringList,以提高数据查询的速度,谁有例子?
相关热词 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法 c# gmail 发邮件 c# 多层文件