课程设计的第一步:
用户登陆模块:就这个小模块把我整死了,出现的问题一个接着一个,最主要的就是数据库连接.
question1.
java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
异常原因:没有导入导驱动包sqljdbc.jar.
question2.
com.microsoft.sqlserver.jdbc.SQLServerException: 没有为集成身份验证配置驱动程序
异常原因:打sqlserver2005的sp3的补丁,然后将数据库设置为用windows+sqlserver双重验证。
question3.
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 ‘xxx’ 无效
异常原因:访问数据库的用户有登录权限,但无操作表的权限
解决办法:
1. 在[企业控制台]窗口–[树]子窗口–[安全性]子树–[登录]项里将你使用的登陆用户的默认数据库设为你所使用的数
据库。
2. 在[企业控制台]窗口–[树]子窗口–[安全性]子树–[登录]项里新增一个登录用户(在其中选择SQL Server 身份验证
、服务器角色和要访问的数据库),以后便可用些新增用户访问你勾选的数据库了。
question4.
java.sMS-sql 2005 ''xxx'' (数据库 ''xxx'',架构 ''dbo'')的 SELECT 权限
异常原因:Sql server 2005 默认设置下不允许远程登陆
1 外围设置 tcp/ip 和 named pipe 同时启用
2 服务器 --〉属性 --〉安全性 --〉sql server 和windows 认证模式 ,数据库(xxx) --->安全性---->架构---->dbo(属
性)--->权限--->添加--->浏览-->
[public]---->具有授予权限(select)
question5.
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Invalid operation for the current cursor
position.
异常原因:ResultSet实例res没有移动指针位置。一个ResultSet指针最初的位置在第一条记录之前,第一次调用next方法
使第一条记录处于当前位置,第二次调用next方法,使第二条记录处于当前位置。
question6.
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]No ResultSet set was produced
异常原因:No ResultSet was produced是没有生成记录集,通常在executeQuery(sql)的时候如果是sql为更新、删除或者插入的时候,
就不能用 ResultSet rs=aq.executeQuery(sql);而直接用executeQuery;因为没有生成记录集
executeQuery(sql)是返回一个ResultSet类型,而ResultSet 又是A table of data representing a database result set ,
该异常是修改了数据库但是没有得到返回对象的错误,而executeUpdate是int类型的,