日期:2014-05-17  浏览次数:20703 次

java连接数据库跪求高手
Java code

public class ConnDB {
    public Connection conn = null; 
    public Statement stmt = null; 
    public ResultSet rs = null; 
    private static String propFileName = "/connDB.properties"; // 指定资源文件保存的位置
    private static Properties prop = new Properties(); // 创建并实例化Properties对象的实例
    private static String dbClassName = "";//定义保存数据库驱动的变量
    private static String dbUrl = "";
    private static String dbUser = "";
    private static String dbPwd = "";
    
    //定义构造方法
    public ConnDB() {    
        try {            
            //将Properties文件读取到InputStream对象中
            InputStream in = getClass().getResourceAsStream(propFileName);
            prop.load(in); // 通过输入流对象加载Properties文件
            dbClassName = prop.getProperty("DB_CLASS_NAME",dbClassName); // 获取数据库驱动
            dbUrl = prop.getProperty("DB_URL", dbUrl);        //获取URL
            dbUser = prop.getProperty("DB_USER", dbUser);    //获取登录用户
            dbPwd = prop.getProperty("DB_PWD", dbPwd);        //获取密码
            
        } catch (Exception e) {
            e.printStackTrace(); 
        }
    }

    public Connection getConnection() {
        System.out.println("前conn="+conn);
        try {
            System.out.println("1111111");
            Class.forName(dbClassName);
            conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);
            System.out.println("数据库连接成功!"+dbUrl);
            
        } catch (Exception ee) {
            ee.printStackTrace();
        }
        System.out.println("后conn="+conn);
        if (conn == null) {
            System.err.println("警告: DbConnectionManager.getConnection() 获得数据库链接失败.\r\n\r\n链接类型:"
                            + dbClassName
                            + "\r\n链接位置:"
                            + dbUrl
                            + "\r\n用户"
                            + dbUser + "\r\n密码"+ dbPwd);
        }
        return conn;
    }




就是这个代码,当我用主方法去调试的时候,一点问题都没有啊,当我在jsp调用的时候,就说“java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver”,而且当我用jsp调用的时候,System.out.println("前conn="+conn);System.out.println("后conn="+conn); 这两句话得到的都是null值啊。求指点!



------解决方案--------------------
这个很显然是你的jar没放到服务器下面,开发环境可能指定了相应的classpath,但是服务器运行环境没加入相应的包,你可以将数据库的jar包放在服务器的lib文件夹下面再试试
------解决方案--------------------
看到错误,首先就是数据库连接失败, 你的确认自己的 用户名、密码是否是已经在数据库中确认。

我开了下你写的连接数据库,我发现: driver 就是 数据库连接的驱动貌似 不对,我记得以前我写驱动的时候是 java.sql.……(时间太长了,记不清) 自己网上查查

做这个 你的保证 先连上,实在不行 debug……
------解决方案--------------------
探讨
引用:
引用:
引用:
这个很显然是你的jar没放到服务器下面,开发环境可能指定了相应的classpath,但是服务器运行环境没加入相应的包,你可以将数据库的jar包放在服务器的lib文件夹下面再试试

+30
问题解决。对了,问下啊,为什么服务器的lib里也要有……

------解决方案--------------------
探讨

引用:
这个很显然是你的jar没放到服务器下面,开发环境可能指定了相应的classpath,但是服务器运行环境没加入相应的包,你可以将数据库的jar包放在服务器的lib文件夹下面再试试

+30
问题解决。对了,问下啊,为什么服务器的lib里也要有这个包啊?我之前用的话一直是弄在工程的lib目录下。呵呵