首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

用PreparedStatement访问mssql,字符参数类型能否指定是varchar?(用sqljdbc4.jar)解决方案

2012-02-22 
用PreparedStatement访问mssql,字符参数类型能否指定是varchar?(用sqljdbc4.jar)语句:String sqlselect

用PreparedStatement访问mssql,字符参数类型能否指定是varchar?(用sqljdbc4.jar)
语句:
String sql="select contractNo,contractName,id from iect_Contract where contractName like ? order by contractNo";
st = cnt.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
st.setString(1, "路基%");
ResultSet rs = st.executeQuery();

通过SQL Server Profiler查看

exec sp_prepare @p1 output,N'@P0 nvarchar(4000)',N'select select contractNo,contractName,id from iect_Contract where contractName like @P0 order by contractNo',1

=====================
由于数据表定义的是varchar类型,而参数是N'@P0 nvarchar(4000)' ,所以查询速度会变慢。
有什么参数可以指定为N'@P0 varchar(8000)'呢?

不要叫我换jtds, jtds1.2.x也是nvarchar类型的,除了jtds,就只有sqljdbc4.jar可用了吧

[解决办法]
不能。你可以修改mysql提供的jar包,实现吧。

热点排行