PreparedStatement中setString方法的异常处理
来源:互联网 发布:怎么使用mysql 编辑:程序博客网 时间:2024/05/22 06:31
如有表:
create table test(
id int,
name varchar2(3000)
)
当执行插入语句到
stmt.setString(2, myString);
的时候,出现如下异常:
java.sql.SQLException: 数据大小超出此类型的最大值
而myString变量的内容为超过700的中文字符(测试的英文字符为2000个)。
也就是说一个中文字符占据了3-4个字节,而且英文字符个数也不对,这好像有点不可思议。
分析原因:
1、驱动程序在把SQL语句发给数据库前,PreparedStatement会对字符串进行预处理并进行转义替换;
2、字符集原因。
也就是说一个中文字符占据了3-4个字节,而且英文字符个数也不对,这好像有点不可思议。
分析原因:
1、驱动程序在把SQL语句发给数据库前,PreparedStatement会对字符串进行预处理并进行转义替换;
2、字符集原因。
通过阅读PreparedStatement文档,发现有一个setCharacterStream方法可以解决这个问题:
stmt.setCharacterStream(2,new InputStreamReader(myString, myString.length());
替换之后中文字符可达1400多。
解决PreparedStatement的setString中字符串长度问题可以有两种办法:
1、使用setCharacterStream()方法;
2、使用OCI驱动连接Oracle数据库。
stmt.setCharacterStream(2,new InputStreamReader(myString, myString.length());
替换之后中文字符可达1400多。
解决PreparedStatement的setString中字符串长度问题可以有两种办法:
1、使用setCharacterStream()方法;
2、使用OCI驱动连接Oracle数据库。
- PreparedStatement中setString方法的异常处理
- PreparedStatement中setString方法的异常
- java中PreparedStatement类的setString用法
- PreparedStatement的setString导致越界问题解决方案
- 使用PreparedStatement的setString方法会自动在数据库相应表项后面补空格解决办法
- 使用PreparedStatement的setString方法会自动在数据库相应表项后面补空格解决办法
- PreparedStatement 中的setString
- 【PreparedStatement的setObject的作用和setString的作用是一样的!】
- 【PreparedStatement的setObject的作用和setString的作用是一样的!】
- 【PreparedStatement的setObject的作用和setString的作用是一样的!】
- java的PreparedStatement.setString(1, "");后一个参数不能为空,否则出错
- Spring中EmptyResultDataAccessException异常的处理方法
- android中一些异常的处理方法
- java中异常处理的方法
- Spring 中异常处理方法的总结
- Java中常用的异常处理方法
- Delphi 中自定义异常及异常处理的一般方法
- Sql server 中PreparedStatement使用产生的异常信息
- IE和FF在JS和CSS的兼容
- SQL分割字符串函数
- 很实用,想在不插网线的情况下,让网络连接不打叉?想在无连接的情况下不禁用TCP/IP协议?
- 安装Railo的时候,IIS出现“Bad Request”的解决方案。
- 写入和读取cookie数组
- PreparedStatement中setString方法的异常处理
- jsp页面隐藏菜单栏、工具栏最大化
- 常用正则表达式举例收藏
- 人生方程式=思维*能力*激情
- 【转】数据库设计5步骤(收藏)
- jdbc开发六步曲
- Linux系统性能测试与分析
- Exception in thread "main" dbca 解决
- gbk、gb2312、big5、unicode、utf-8