浏览 1608 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-12-05
最后修改:2011-12-05
sqlserver实际接受到的username的参数值为 N'kk'. USERNAME为主键,由于传入参数类型为nvarchar而实际字段类型类型为varchar,导致对全表的scan,而非seek。 业务忙时为照成死锁问题。(用hibernate实现下面的代码碰到了同样的问题。) 有没有好的解决方法。将字段类型修改成nvarchar不算。 try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection con = DriverManager.getConnection( "jdbc:sqlserver://oradb:1433;DatabaseName=MYDB;", "sa", "sa123456"); PreparedStatement ps = con .prepareStatement("select * from T_USER where USERNAME=?"); ps.setString(1, "kk"); ResultSet rs = ps.executeQuery(); } catch (Exception ex) { ex.printStackTrace(); } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |