一开始我用的是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.   

    驱动程序的JAR包放在
    /WEB-INF/lib/下就可以了
      

  2.   

    如果mysql也连不上,就是你程序有问题了。
    首先你目前用的是什么IDE?在IDE中你的程序是否提示有错误呢?有错的话,就是你配置有错误
    如果是web项目将jar放到WEB-INF/lib下
      

  3.   

    xp 上用sqlserver2000 要打sqlserver200 sp3包
    加上三个sqlserver的驱动包。。到
    /WEB-INF/lib/
      

  4.   

    IdE用的是eclipse,
    eclipse的报错信息如下:
    Usage: javaw [-options] class [args...]
               (to execute a class)
       or  javaw [-options] -jar jarfile [args...]
               (to execute a jar file)where options include:
        -client   to select the "client" VM
        -server   to select the "server" VM
        -hotspot   is a synonym for the "client" VM  [deprecated]
                      The default VM is client.
                      
        -cp <class search path of directories and zip/jar files>
        -classpath <class search path of directories and zip/jar files>
                      A ; separated list of directories, JAR archives,
                      and ZIP archives to search for class files.
        -D<name>=<value>
                      set a system property
        -verbose[:class|gc|jni]
                      enable verbose output
        -version      print product version and exit
        -version:<value>
                      require the specified version to run
        -showversion  print product version and continue
        -jre-restrict-search | -jre-no-restrict-search
                      include/exclude user private JREs in the version search
        -? -help      print this help message
        -X            print help on non-standard options
        -ea[:<packagename>...|:<classname>]
        -enableassertions[:<packagename>...|:<classname>]
                      enable assertions
        -da[:<packagename>...|:<classname>]
        -disableassertions[:<packagename>...|:<classname>]
                      disable assertions
        -esa | -enablesystemassertions
                      enable system assertions
        -dsa | -disablesystemassertions
                      disable system assertions
        -agentlib:<libname>[=<options>]
                      load native agent library <libname>, e.g. -agentlib:hprof
                        see also, -agentlib:jdwp=help and -agentlib:hprof=help
        -agentpath:<pathname>[=<options>]
                      load native agent library by full pathname
        -javaagent:<jarpath>[=<options>]
                      load Java programming language agent, see java.lang.instrument
        -splash:<imagepath>
                      show splash screen with specified image
      

  5.   

    服务器检查过己开启,
    common/lib;和WEBINFO/lib目录下都有驱动程序的jar包。
    用dos 控制台编译没有问题, tomcat运行时提示有空指针异常:
    Connection 对象con没有实例化
    我现在开始有点怀疑JDK,有问题
      

  6.   

    JDBC是需要打包的,
    JDK的那个目录下,你去看看,好像要什么三个文件,以前整过打包出来的三个文件。。SQL的好像
      

  7.   

    先打补丁,在cmd下连接端口。
      

  8.   

    打个sp3的补丁包
    现在好像有sp4了
      

  9.   

    String jdbcUrl="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=LoginDatabase"; 
    我不记得 sqlserver的 URL是不是这样写了还有,你用 eclipse 写个测试用例,看看能不能连上数据库,首先判断下是哪里出了问题吧
      

  10.   

    不对吧 你好像没有给Connection赋初始值,试一下下面的方法:private Connection con=null; 
      

  11.   

    package bean;
    import java.sql.Connection;
    import java.sql.Statement;
    import java.sql.ResultSet;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import entity.ChannelInfo;
    public class Conn {
        String cSql="sun.jdbc.odbc.JdbcOdbcDriver";    Connection con;
        Statement stm;
        ResultSet rs;    public Conn() {
            try {
                Class.forName(cSql);
            } catch (ClassNotFoundException ex) {
                ex.printStackTrace();
            }    }
        public boolean open(){
            String sql="jdbc:odbc:accp";
        try {
            con = DriverManager.getConnection(sql);
            stm=con.createStatement();
            if(stm!=null)
            {
                return true;
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        }    return false;    }    public boolean judgeUser(String userName,String passWord){
            boolean judge=this.open();
            if(userName!=null&&passWord!=null&&judge)
            {
                try {
                    rs = stm.executeQuery("select * from userInfo where userName='"+userName+"' and passWord='"+passWord+"'");
                    if(rs.next())
                    {
                        return true;
                    }            } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            }
            return false;    }public ArrayList getChannelList(){
        ArrayList arrayList=new ArrayList();
        open();
        try {
            rs = stm.executeQuery("select * from channelInfo");
            while(rs.next())
            {
                ChannelInfo channle=new  ChannelInfo();
                channle.setChannelId(rs.getString(1));
                channle.setChannelName(rs.getString(2));
                channle.setUserId(rs.getString(3));
                arrayList.add(channle);
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
            return arrayList;    }
    }