classname = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
url = "jdbc:sqlserver://localhost:1433;DatabaseName=HR";
try {
Class.forName(classname).newInstance();
System.out.println("加载数据库驱动成功!");
} catch (Exception e) {
e.printStackTrace();
System.out.println("加载数据库驱动失败!");

另外在myeclipse中组装sql语句时,表名是user还是数据库里的名字dbo.user呢? jar包添加了,在浏览器中提示是:
java.lang.NullPointerException
service.LoginService.login(LoginService.java:22)
action.LoginServlet.doPost(LoginServlet.java:82)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)在LoginService中的语句就是调用dao.query();应该不会出错,,到底是为什么连接不到数据库呢 
有这方面的成手么,,可以的话留下个联系方式QQ或者邮箱什么的 真心想搞懂这玩意

解决方案 »

  1.   

    表名是user,dbo.user不是表名,只是sqlserver那么显示的
    报的是空指针啊,你设下断点,看dao是不是空的,是的话就是没连到数据库,话说这块我也记不住,每次都是去复制以前的,⊙﹏⊙b汗
      

  2.   

     
    我就不了解为什么啊,,愁呀 ,,还有如果sqlserver是windows身份验证的话,,是不是在conn = DriverManager.getConnection(url); 里面就不用写名和密码了。。其他的都没有问题 就是连不到数据库 郁闷了
      

  3.   

    应该是class没加载上newInstance()时出错了
      

  4.   

    我试了把newInstance去掉。。也不好使。。还有要是这个出错的怎么解决咯~?
      

  5.   

    user在sqlserver里是关键字啊  应该写[user]???
      

  6.   

     我写的是users。就是那一个形式     
      

  7.   

    java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1484)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1329)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at DAO.dao.<init>(dao.java:23)   //Class.forName(classname).newInstance();
    看起来真的是dao木有实例。。怎么解决呢 ·?
      

  8.   

    连接数据库的不就那几行代码吗,调试一下,看到底哪里最先为空啊,知道哪行代码出差了,改还不容易啊
    conn = DriverManager.getConnection(url); 
    一般上面的这句为空的可能性比较大
      

  9.   

    java.lang.ClassNotFoundException写的很清楚啊  com.microsoft.sqlserver.jdbc.SQLServerDriver这个没有找到检查一下你的驱动包 是否是sqlserver的
      

  10.   

    估计就是驱动问题,类无法加载嘛。。要不就是你的URL写错了呗,或者 CLASSNAME写错了呗,都试试,还有你的那个空指针异常,开DeBug调试一下就知道哪儿报的了
      

  11.   

    Class.forName(classname).newInstance();
    加载驱动就加载驱动呗,何必来个实例呢,静态代码块中有过了都。
      

  12.   

    package com.yxq.toolsbean;import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;public class DB {
        private final String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_Blog";
        private final String userName = "sa";
        private final String password = "123456";
        private Connection con = null;
        private Statement stm=null;
        
        /* 通过构造方法加载数据库驱动 */
        public DB(){
         try {
         Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); 
         } catch (Exception e) {
         e.printStackTrace();
         System.out.println("加载数据库驱动失败!");
         }    
        }
        /* 创建数据库连接 */
        public void createCon() {
            try {
                con = DriverManager.getConnection(url, userName, password);
            } catch (Exception e) {
                e.printStackTrace();
                System.out.println("获取数据库连接失败!");
            }
        }
        /* 获取Statement对象 */
        public void getStm(){
        createCon();
         try {
    stm=con.createStatement();
    } catch (SQLException e) {
    e.printStackTrace();
    System.out.println("创建Statement对象失败!");
    }
        }
        /** 
         * @功能 对数据库的增加、修改和删除的操作
         * @参数 sql为要执行的SQL语句
         * @返回值 boolean型值 
         */
        public boolean executeUpdate(String sql) {
         System.out.println(sql);
            boolean =false;
         try {
         getStm();
                int iCount = stm.executeUpdate(sql);
                if(iCount>0)            
                 =true;            
                else
                 =false;
            } catch (Exception e) {
                e.printStackTrace();
        =false;
            }
            return ;
        }
        /* 查询数据库 */
        public ResultSet executeQuery(String sql) {
            ResultSet rs=null;
            try {
                getStm();
                try {
                    rs = stm.executeQuery(sql);
                } catch (Exception e) {
                 e.printStackTrace();
                    System.out.println("查询数据库失败!");
                }
            } catch (Exception e) {
                e.printStackTrace();          
            }
            return rs;
        }
        /* 关闭数据库的操作 */
        public void closed() {
         if(stm!=null)
    try {
    stm.close();
    } catch (SQLException e) {
    e.printStackTrace();
    System.out.println("关闭stm对象失败!");
    }
         if(con!=null)
    try {
    con.close();
    } catch (SQLException e) {
    e.printStackTrace();
    System.out.println("关闭con对象失败!");
    }
        }
    }
    这是我以前常用的,你试试!