当前位置: 代码迷 >> J2EE >> 用PreparedStatement访问mssql,字符参数类型能否指定是varchar?(用sqljdbc4.jar)解决方案
  详细解决方案

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

热度:453   发布时间:2016-04-22 03:03:14.0
用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包,实现吧。
  相关解决方案