一开始我用的是sqlServer2000和java程序做连接,总是连不上,部分代码如下:package myprograme;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.sql.*;
import java.io.*;
public class LoginHandle extends HttpServlet
{
String jdbcDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String jdbcUrl="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=LoginDatabase";
Connection con;
Statement sta;
ResultSet res;
public void init()
{
try
{
Class.forName(jdbcDriver);
}
catch(ClassNotFoundException cnfe)
{
cnfe.printStackTrace();
}
try
{
 con=DriverManager.getConnection(jdbcUrl,"sa","123");//是不是这上有问题?????
}
catch(SQLException sqle)
{
sqle.printStackTrace();
}
}
public void doPost(HttpServletRequest req,HttpServletResponse resp)
{
 resp.setContentType("text/html");
tomcat 抛出空指针异常,提示Connection 对象con没有实例化,(没有取到值)我以为是数据库的问题,    
 
我现在用的是mysql,和servlet连接。一连测试好几天了,数据库也总是连接不上,
部分代码如下:
package rh;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;
import bean.User;
//import java.
public class RegisterHandle extends HttpServlet 
{
private String jdbcDriver="org.git.mm.mysql.Driver";
private String jdbcUrl="jdbc:mysql://localhost:3306/userinfo";
private Statement sta;
private Connection con;
private ResultSet res;
public void init()
{
try
{
Class.forName(jdbcDriver);
}
catch(ClassNotFoundException cnfe)
{
cnfe.printStackTrace();
}

try
{
con=DriverManager.getConnection(jdbcUrl,"root","123");
}
catch(SQLException sqle)
{
sqle.printStackTrace();
}
}
tomcat 还是抛出空指针异常,con没有实例化,
请问各位大哥,是不是驱动程序的jar包,我放错地方了,应该放在哪儿?
classpath 环境变量呢?

解决方案 »

  1.   

    sqlServer2000连接的时候注意下sp3补丁包。不过我很久以前也碰到过2次这种情况,链接配置 JDBC都没有问题,甚至包括sp3补丁包也安装过。第一次,我还在开发RCP程序。在自己机子上调试没有问题,之后安装到另外一台机子上,却连接不上。和楼主标示的位置一样,catch到SQLException。之后重装数据库等一点一点排除,最后发现要是安装了他原本机子上安装的那种操作系统(像是番茄那种别人优化过的系统)就会出问题。之后我用原版的Xp给他安装之后就没有出这个问题。
    第二次,在一个同事的机子上,是Xp英文原版系统,现象与上边相同。但是这次最后发现在sqlserver服务打开的情况下仍然能够将数据库文件剪切出来。虽然服务启动正常。用企业管理器查看也正常。之后重装了mssql就好了。以上是我碰到过的一些经历,楼主可以参考看下。也许你是第三种情况。
      

  2.   

    你把异常贴上来。还有,你的JDBC驱动是哪个版本?有几个jar文件?
    看你的URL,应该是3个jar的老版本驱动。如果你的异常里面包含如下内容
    The   Network   Adapter   could   not   establish   the   connection  请参考这个文章,一定能解决,http://www.java2000.net/viewthread.jsp?tid=394
      

  3.   

    连接DB要保证:
    1.工程,右键,属性-编译路径-库,加上对应DB的JDBC驱动包
    2.Class.forName("正确的连接字符串")
    3.DriverManager.getConnection("正确的DB URL","用户名","密码")
    就OK了建议你还是把异常信息贴上来。