当前位置:  技术问答>java相关

[急救]数据库问题

    来源: 互联网  发布时间:2015-06-01

    本文导语:  这个search.jsp用于接受其他网页发来的表单信息并搜索数据库,返回结果 但是在实际使用中,只使用英文可以正常处理,使用中文或者空格等就出错,错误提示为: javax.servlet.ServletException: [Microsoft][SQLServer JDBC D...







这个search.jsp用于接受其他网页发来的表单信息并搜索数据库,返回结果
但是在实际使用中,只使用英文可以正常处理,使用中文或者空格等就出错,错误提示为:
javax.servlet.ServletException: [Microsoft][SQLServer JDBC Driver]Unexpected token type: ERROR
类型不匹配?是怎么回事儿???是不是String keywords = new String(keyword.getBytes("GB2312"),"ISO8859-1");这句转换的问题?

服务器使用tomcat,mssql2000中文版

|
你可以试试不进行转换,看看有什么情况.

|
转换之前先判断是不是为null试试

|
colTime是字符型吗?如果是可以用r.getString("colTime")取数据。
如果是日期型要用r.getDate(colTime);如果是Time型要用r.getTime(colTime);
你的colId也是字符型吗?如果不是也不要用r.getString("colId")取。
要判断是不是这里错误:你可以改为:
String sStr = "SELECT top 20 colId,colTitle,colIndex,colTime from 
tabIndex where contains(*,'"+keywords+"') order by colId desc";
System.out.println("sStr=="+sStr) ;
ResultSet r = s.executeQuery(sStr);
System.out.println("aaaa") ;
你先打印Sql语句看是否正确。
看"aaaa"是否打印出,如果没有则Sql语句有问题。如果正常打印,则错误不在这里,你可以这样一步步跟踪下去,看到底哪里有错误。


|
在SQL语句中直接使用中文是不安全的,常常造成SQL语句的错误:
一下方法可以解决:
PrepareStatement st = con.prepareStatement("SELECT top 20 colId,colTitle,colIndex,colTime from 
tabIndex where contains(*,?) order by colId desc");
st.setString(1,keyword);
ResultSet r = s.executeQuery();



|
String keywords = new String(keyword.getBytes("GB2312"),"ISO8859-1");
改成:
String keywords = new String(keyword.getBytes("ISO8859-1"),"GB2312");

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在线高分急救,急救,急救,急救,急救,急救!!!!!!!!!!
  • 急救,急救!(近来看看吧)
  • qmail奇怪的问题,急救啊 SOS!
  • linux 进入单用户或急救模式
  • 新手 用Linux搞的XP的D盘找不到了 急救
  • 各位兄弟,急救我是初学者,关于JBULID的问题?
  • 批量更新数据库所有表中字段的内容,中木马后的急救处理 iis7站长之家
  • 急救,请问如何得到jTree中被选中节点的父节点的path或者row?
  • 急救!怎样实现在线人数统计!!!
  • 各位高手,急救啊!!!!!
  • 急救!帮助
  • 急救,欢迎各位LINUX高手(火速)
  • 急救!!!简单的HELLOWORLD程序,编译痛不过
  • 急救!~!~!那位高手知道怎么安Realtek RTL8139网卡吗?
  • 急救!!——忘记了linux登陆密码,有办法进去吗?
  • 各位大虾,急教,急救!
  • 急救!删除了linux,进不了2k了。。
  • 急救
  • 急救!分数不是问题,就是要快!
  • 急救~!请问在字符串后面怎么加上回车,换行??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3