死都连不上sqlserver2008.。天啊 崩溃了都。。

h-2010 发布于 2012/12/09 10:37
阅读 2K+
收藏 1

有一个web工程要连sqlserver2008 sqljdbc4.0也放在Tomcat/lib下了 项目下里也导了进去 odbc数据源也开了 感觉该做的都应该做了吧 可为什么只要是连接数据为库的操作都出现一样的问题。。都两天了 还没搞定这个 百度也无果 没办法 只好来请教大神 。。下面错误提示

代码如下 这个应该没问题
public class ConnDB {
public Connection conn = null; // 声明Connection对象的实例
public Statement stmt = null; // 声明Statement对象的实例
public ResultSet rs = null; // 声明ResultSet对象的实例
private static String propFileName = "/com/connDB.properties"; // 指定资源文件保存的位置
private static Properties prop = new Properties(); // 创建并实例化Properties对象的实例
private static String dbClassName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";//定义保存数据库驱动的变量
private static String dbUrl = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_netExam";
private static String dbUser = "sa";
private static String dbPwd = "";
public ConnDB() { //定义构造方法
try { //捕捉异常
//将Properties文件读取到InputStream对象中
InputStream in = getClass().getResourceAsStream(propFileName);
prop.load(in); // 通过输入流对象加载Properties文件
dbClassName = prop.getProperty("DB_CLASS_NAME"); // 获取数据库驱动
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 static Connection getConnection() {
Connection conn = null;
try {
Class.forName(dbClassName).newInstance();
conn = DriverManager.getConnection(dbUrl,dbUser,dbPwd);
} catch (Exception ee) {
ee.printStackTrace();
}
if (conn == null) {
System.err
.println("警告: DbConnectionManager.getConnection() 获得数据库链接失败.\r\n\r\n链接类型:"
+ dbClassName
+ "\r\n链接位置:"
+ dbUrl
+ "\r\n用户/密码"
+ dbUser + "/" + dbPwd);
}
return conn;
}

/*
 * 功能:执行查询语句
 */
public ResultSet executeQuery(String sql) {
try { // 捕捉异常
conn = getConnection(); // 调用getConnection()方法构造Connection对象的一个实例conn
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
} catch (SQLException ex) {
System.err.println(ex.getMessage()); // 输出异常信息
}
return rs; // 返回结果集对象
}

/*
 * 功能:执行更新操作
 */
public int executeUpdate(String sql) {
int result = 0; // 定义保存返回值的变量
try { // 捕捉异常
conn = getConnection(); // 调用getConnection()方法构造Connection对象的一个实例conn
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
result = stmt.executeUpdate(sql); // 执行更新操作
} catch (SQLException ex) {
result = 0; // 将保存返回值的变量赋值为0
}
return result; // 返回保存返回值的变量
}

/*
 * 功能:关闭数据库的连接
 */
public void close() {
try { // 捕捉异常
if (rs != null) { // 当ResultSet对象的实例rs不为空时
rs.close(); // 关闭ResultSet对象
}
if (stmt != null) { // 当Statement对象的实例stmt不为空时
stmt.close(); // 关闭Statement对象
}
if (conn != null) { // 当Connection对象的实例conn不为空时
conn.close(); // 关闭Connection对象
}
} catch (Exception e) {
e.printStackTrace(System.err); // 输出异常信息
}
}

}

加载中
0
h-2010
h-2010
不要沉啊 求大神指点。。。
0
短短的歼击机
短短的歼击机
玩java的痛啊
h-2010
h-2010
真不想说这是条不归路
h-2010
h-2010
有什么好策略么。。求教!
0
Ryan-瑞恩
Ryan-瑞恩
你单独写一个连接数据库的看看……
Ryan-瑞恩
Ryan-瑞恩
@h-2010 那说明你的驱动不对啊?
h-2010
h-2010
是的 按你说的 我单独写了个连接2008的 直接显示的就是 Not found the driver 可是真的也导了包啊。。JDK下也放了。。不知原因。。
0
南湖船老大
南湖船老大
public ResultSet executeQuery(String sql) {
try { // 捕捉异常

conn = getConnection(); /

看报错是这里错了,这里没得到connection

0
南湖船老大
南湖船老大
Java是最好调试的语言吧,报错都是堆栈的形式,一看就知道是哪行代码的问题
南湖船老大
南湖船老大
回复 @h-2010 : 无代码无真相,无目录层次结构图无真相
h-2010
h-2010
我单独写了个连接2008的 直接显示的就是 Not found the driver 可是真的也导了包啊。。JDK下也放了。。不知原因。。
0
ForEveryDay
ForEveryDay
private static String dbUrl = "jdbc:sqlserver://localhost:1433;DatabaseName=db_netExam"
h-2010
h-2010
对的 后来我自己单独写了个连接sqlserver2008的 改成这个就可以连上了 不过在我那个工程里改成这样还是报这样错误。。估计是工程哪里有错 。。
0
枫爱若雪
枫爱若雪
小弟眼拙,这个是空指针吧
h-2010
h-2010
然后呢 最讨厌的就是个NulllPointer Exception 哎。。无解了
0
陶邦仁
陶邦仁

 这个肯定是数据库连接字符串的问题,把用户名和密码放到字符串中试试

h-2010
h-2010
什么意思 后来我自己单独写了个连接sqlserver2008的Test 可以连上也可以操作 不过在我那个工程里只要是对sqlserver2008操作的都是报这样错误。。估计是工程哪里有错 。。无法连上它。。好奇怪!
0
大东哥
大东哥

Class.forName(dbClassName).newInstance();

h-2010
h-2010
好吧 你没认真看代码 我上面有这个了。。
0
H
HarryF
估计是sql server配置的问题,到SQL Server Configuration Manager把tcpip/named pipe配置enabled.
h-2010
h-2010
我自己单独写了个连接sqlserver2008的Test 可以连上也可以操作 不过在我那个工程里只要是对sqlserver2008操作的都是报这样错误。。估计是工程哪里有错 。。无法连上它。。好奇怪! 我自己再好好看看 空指针错误真的是要人命
返回顶部
顶部