java.lang.NullPointerException处理之完整方案与原因分析!
java.lang.NullPointerException错误的神秘面纱!史上最全,最深入的分析! 让你看完这篇不用再看下一篇
废话不多说。下面开始全面分析。(环境:tomcat+sql server+jsp)
本质上。这个错误是数据库连接的错误(当然前提是代码本身没错,因为我们说的是源码!)。
经过我舍友的仔细研究(他是个低调的人,所以就由我帮他写了。必须达到以下条件(错误原因就是以下六条没配置完):
1.JAVA环境配置正确。
2.源码里面的包没有与tomcat的包冲突。
3.把数据库文件给导入到了SQL SERVER(或者其它数据库系统)里面。并且数据库系统正在运行。
4.添加了数据源。
5.数据库源文件的系统类型匹配(不匹配重新建立数据库,源码里面一般含有数据库的表结构及内容。),且数据库的连接密码正确。
6.JDBC驱动文件(或者其它)存在且放在tomcat的lib目录下面。(msbase.jar,mssqlserver.jarmsutil.jar)



下面开始说如何配置以上几项。

1.JAVA环境变量配置-》http://www.pc6.com/java/j_55283.html。按照里面说的配置。最后测试javac能否显示信息。显示成功完成此步。

2.网站源码-》WEB-INF-》lib里面的.jar包没有和tomcat的lib目录下的包重复。有的话把源码里面的包删除。

3.SQL SERVER企业管理器。在数据库上右键-》所有任务-》附加数据库。把源码里面的数据库.mdf文件选上。所有都选SA
(一般是这样选择,选其它的话。连接数据库的时候得把用户名密码写对。)。确定。

4.win+R->odbcad32-》回车-》添加-》选择SQL SERVER ->数据源名称应用数据库文件的名称。服务器一般是 (local)->使用用户登录-》
填入sa +密码-》更改默认数据库为添加的-》下一步-》完成-》确定。

5.数据库系统类型是否匹配可在网站源码-》src-》...-》toolsbean-》DB.java(这里指数据库连接的源码文件)找到这样一句
private final String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_Blog";这里就可以看到数据库是SQL SERVER
以及连接用户名密码。private final String userName = "sa";private final String password = "sa";将其修改为你的。
但是我们这里只是修改的源码。这还不够。把改好的DB.java放到C盘根目录。启动cmd cd \ 命令切换到C根目录。
用javac DB.java生成一个DB.class。把这个文件复制到WEB-INF->classes->....->toolsbean下面替换原来的DB.class

6.把源码LIB下面的msbase.jar,mssqlserver.jarmsutil.jar(JDBC驱动)剪切到tomcat的LIB目录下面。复制会存在包冲突。
OK。完了。怎么还不能还是没用?嘿嘿。最后还得把SQL SERVER 2000升级到SP4版本哦。这个就不知道是什么原因了。反正这步是相当之关键。前面全部配置正确。如果没升级也还是连接不上数据库。