《jsp项目开发全程实录》第二章将my sql 数据库改成ms sql2k数据库后的配置问题。中文数据乱码
发表在JavaWeb图书答疑 2009-11-09
是否精华
版块置顶:
《jsp项目开发全程实录》第二章将my sql 数据库改成ms sql2k数据库后,ms sql2k的用户名是sa 密码为空。并将ms sql2k的三个jar包放入里lib文件夹下,运行网站后在第一个页面输入用户名和密码时出现如下错误:

获取的查询字符串:login
java.sql.SQLException: No suitable driver found for jdbc:microsoft://127.0.0.1:1433/db_librarySys?user=sa&password=&useUnicode=true
at java.sql.DriverManager.getConnection(DriverManager.java:602)
at java.sql.DriverManager.getConnection(DriverManager.java:207)
at com.core.ConnDB.getConnection(ConnDB.java:33)
at com.core.ConnDB.executeQuery(ConnDB.java:51)
at com.dao.ManagerDAO.checkManager(ManagerDAO.java:73)
at com.action.Manager.managerLogin(Manager.java:51)
at com.action.Manager.execute(Manager.java:24)
          

我将connDB.properties文件的内容改为如下:
#DB_CLASS_NAME(驱动的类的类名)
#DB_CLASS_NAME=com.mysql.jdbc.Driver

#DB_URL(要连接数据库的地址)
#DB_URL=jdbc:mysql://127.0.0.1:3306/db_librarySys?user=root&password=111&useUnicode=true

DB_CLASS_NAME=com.microsoft.jdbc.sqlserver.SQLServerDriver

DB_URL=jdbc:microsoft://127.0.0.1:1433/db_librarySys?user=sa&password=&useUnicode=true

请问上面两行的内容是否修改正确,是否还要修改其它地方的代码才可以?

补充说明,改成ms sql2k连接成功后,网页中新增加的中文记录显示乱码,以前中文记录正常,详见附件。
分享到:
精彩评论 22
无语_mrkj
学分:3155 LV11
2009-11-02
沙发
DB_CLASS_NAME=com.microsoft.jdbc.sqlserver.SQLServerDriver

DB_URL=jdbc:microsoft://127.0.0.1:1433/db_librarySys?user=sa&password=&useUnicode=true
这两行代码也需要修改,不过下面的代码:
#DB_CLASS_NAME(驱动的类的类名)
#DB_CLASS_NAME=com.mysql.jdbc.Driver

#DB_URL(要连接数据库的地址)
#DB_URL=jdbc:mysql://127.0.0.1:3306/db_librarySys?user=root&password=111&useUnicode=true
是注释(以#开头的代码是注释),所以修改与不修改都不影响程序的运行。
注意:下面的那两行代码是必须修改的。
hanqg
学分:0 LV1
2009-11-02
板凳
[FIELDSET][LEGEND]引自:1楼[/LEGEND]
DB_CLASS_NAME=com.microsoft.jdbc.sqlserver.SQLServerDriver

DB_URL=jdbc:microsoft://127.0.0.1:1433/db_librarySys?user=sa&password=&useUnicode=true
这两行代码也需要修改,不过下面的代码:
#DB_CLASS_NAME(驱动的类的类名)
#DB_CLASS_NAME=com.mysql.jdbc.Driver

#DB_URL(要连接数据库的地址)
#DB_URL=jdbc:mysql://127.0.0.1:3306/db_librarySys?user=root&password=111&useUnicode=true
是注释(以#开头的代码是注释),所以修改与不修改都不影响程序的运行。
注意:下面的那两行代码是必须修改的。
[/FIELDSET]

回复:
以#开头的代码是注释我知道,那个是我有意将原光盘上的代码注释掉后,再改成如下两行的,我不知是否改对?我ms sql2k的用户名是sa,密码为空,因为改后连接不上数据库,错误提示(java.sql.SQLException: No suitable driver found for jdbc:microsoft://127.0.0.1:1433/db_librarySys?user=sa&password=&useUnicode=true)。

DB_CLASS_NAME=com.microsoft.jdbc.sqlserver.SQLServerDriver

DB_URL=jdbc:microsoft://127.0.0.1:1433/db_librarySys?user=sa&password=&useUnicode=true
  
无语_mrkj
学分:3155 LV11
2009-11-02
地板
DB_URL=jdbc:microsoft://127.0.0.1:1433/db_librarySys?user=sa&password=&useUnicode=true
这句修改的不对,改成下面的内容试试:
DB_URL=jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=db_librarySys;user=sa;password=
hanqg
学分:0 LV1
2009-11-04
4L
[FIELDSET][LEGEND]引自:3楼[/LEGEND]
DB_URL=jdbc:microsoft://127.0.0.1:1433/db_librarySys?user=sa&password=&useUnicode=true
这句修改的不对,改成下面的内容试试:
DB_URL=jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=db_librarySys;user=sa;password=
[/FIELDSET]

回复: 还是不行,控制台提示信息如下:
获取的查询字符串:login
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:207)
at com.core.ConnDB.getConnection(ConnDB.java:33)
at com.core.ConnDB.executeQuery(ConnDB.java:51)
at com.dao.ManagerDAO.checkManager(ManagerDAO.java:73)
at com.action.Manager.managerLogin(Manager.java:51)
at com.action.Manager.execute(Manager.java:24)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
警告: DbConnectionManager.getConnection() 获得数据库链接失败.

链接类型:com.microsoft.jdbc.sqlserver.SQLServerDriver
链接位置:jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=db_librarySys;user=sa;password=
2009-11-4 7:30:42 org.apache.struts.action.RequestProcessor processException
警告: Unhandled Exception thrown: class java.lang.NullPointerException
2009-11-4 7:30:42 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet action threw exception
java.lang.NullPointerException
at com.core.ConnDB.executeQuery(ConnDB.java:53)
at com.dao.ManagerDAO.checkManager(ManagerDAO.java:73)
at com.action.Manager.managerLogin(Manager.java:51)
at com.action.Manager.execute(Manager.java:24)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)


  
free007
学分:0 LV1
2009-11-04
5L
错误的原因是你的SQLServer数据库没有打SP4补丁
下载地址:
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=8E2DFC8D-C20E-4446-99A9-B7F0213F8BC5
下载
SQL2000-KB884525-SP4-x86-CHS.EXE

另外在安装SQL Server 2000的SP4补丁时,默认执行的是解压缩操作,在解压完成后,还需要要解压缩的位置找到setup.bat文件,运行该文件进行正式安装。
hanqg
学分:0 LV1
2009-11-05
6L
[FIELDSET][LEGEND]引自:5楼[/LEGEND]
错误的原因是你的SQLServer数据库没有打SP4补丁
下载地址:
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=8E2DFC8D-C20E-4446-99A9-B7F0213F8BC5
下载
SQL2000-KB884525-SP4-x86-CHS.EXE

另外在安装SQL Server 2000的SP4补丁时,默认执行的是解压缩操作,在解压完成后,还需要要解压缩的位置找到setup.bat文件,运行该文件进行正式安装。
[/FIELDSET]

回复:我的补丁已安装了,应该不是这个问题,1433端口也能访问,因为本书其它需要连接sql2k项目都能正常连接。
  
hanqg
学分:0 LV1
2009-11-06
7L
[FIELDSET][LEGEND]引自:6楼[/LEGEND]
[FIELDSET][LEGEND]引自:5楼[/LEGEND]
错误的原因是你的SQLServer数据库没有打SP4补丁
下载地址:
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=8E2DFC8D-C20E-4446-99A9-B7F0213F8BC5
下载
SQL2000-KB884525-SP4-x86-CHS.EXE

另外在安装SQL Server 2000的SP4补丁时,默认执行的是解压缩操作,在解压完成后,还需要要解压缩的位置找到setup.bat文件,运行该文件进行正式安装。
[/FIELDSET]

回复:我的补丁已安装了,应该不是这个问题,1433端口也能访问,因为本书其它需要连接sql2k项目都能正常连接。
  
[/FIELDSET]

回复:现在有新错主提示:
获取的查询字符串:login
验证结果ret的值:1图书借阅排行:select * from (SELECT bookid,count(bookid) as degree FROM tb_borrow group by bookid) as borr join (select b.*,c.name as bookcaseName,p.pubname,t.typename from tb_bookinfo b left join tb_bookcase c on b.bookcase=c.id join tb_publishing p on b.ISBN=p.ISBN join tb_booktype t on b.typeid=t.id where b.del=0) as book on borr.bookid=book.id order by borr.degree desc limit 10 
[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]第 1 行: 'limit' 附近有语法错误。
2009-11-6 17:02:00 org.apache.catalina.core.ApplicationDispatcher invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at com.dao.BorrowDAO.bookBorrowSort(BorrowDAO.java:197)
at org.apache.jsp.main_jsp._jspService(main_jsp.java:191)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:856)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)
at java.lang.Thread.run(Thread.java:619)
2009-11-6 17:02:00 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet action threw exception
java.lang.NullPointerException
at com.dao.BorrowDAO.bookBorrowSort(BorrowDAO.java:197)
at org.apache.jsp.main_jsp._jspService(main_jsp.java:191)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:856)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)
at java.lang.Thread.run(Thread.java:619)

  
无语_mrkj
学分:3155 LV11
2009-11-07
8L
[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]第 1 行: 'limit' 附近有语法错误。
这个错误是由于在获取前几条记录时,SQL Server 数据库使用的SQL语句与MySQL使用的SQL语句不同造成的,把相应的语句改为SQL Server 对应的SQL语句。
注:SQL Server中用Top关键字实现。
hanqg
学分:0 LV1
2009-11-08
9L
[FIELDSET][LEGEND]引自:8楼[/LEGEND]
[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]第 1 行: 'limit' 附近有语法错误。
这个错误是由于在获取前几条记录时,SQL Server 数据库使用的SQL语句与MySQL使用的SQL语句不同造成的,把相应的语句改为SQL Server 对应的SQL语句。
注:SQL Server中用Top关键字实现。
[/FIELDSET]

回复: 现在可以连接简体MS SQL 2K正常运行了,谢谢,但在添加汉字记录时,显示乱码,请问这要在哪儿修改?
  
东北虎
学分:0 LV1
2009-11-09
10L
出现乱码的原因是程序编码的问题,您只需要将程序中的编码改为GBK的就可以了。
首页上一页 123 下一页尾页 22 条记录 1/3页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照