java阻止jdbc在sql插入和更新时填充字符串
我们正在使用jdbc odbc桥连接到MS SQL数据库。当执行插入或更新时,字符串被放入数据库,填充到数据库字段的长度。有没有办法关闭这种行为(字符串应该在不填充的情况下进入表)
作为参考,我们可以使用SQL管理工具和查询分析器插入不包含填充的字段值,所以我很确定这是在jdbc或odbc层发生的
编辑:数据库中的字段被列为nvarchar(X),其中X=50255,随便什么
编辑2:执行插入的调用使用了一条准备好的语句,就像:
PreparedStatement stmt = new con.prepareStatement("INSERT INTO....");
stmt.setString(1, "somevalue");
# 1 楼答案
在数据库中使用CHAR字段还是VARCHAR字段
CHAR填充字段的大小。瓦查尔没有
我不认为JDBC会导致这种情况
# 2 楼答案
你是如何设置字符串的?你在干什么
如果是这样,试试这个:
同样,这只是猜测,没有看到你是如何插入的
# 3 楼答案
如果你可以使用常规的SQL工具(比如…我不知道MS SQL服务器的Toad之类的工具)进行插入,那么更改驱动程序就可以了
使用Microsoft SQL Server JDBC type IV驱动程序
试试这个链接
http://www.microsoft.com/downloads/details.aspx?familyid=F914793A-6FB4-475F-9537-B8FCB776BEFD&displaylang=en
不幸的是,这些下载都有很多垃圾。有一个安装工具和数百个文件。看看下面的例子:
intalldir\lib\someSingle。罐子
复制到其他地方并卸载/删除其余部分
几个月前我就这么做了,不幸的是我记不清它到底在哪里了
编辑
好的,我知道了
点击下载,在页面末尾点击“我同意并想下载UNIX版本”
这是一个常规的压缩文件(使用win-rar或其他文件),在那里可以找到那个单罐子
这应该行得通