死都连不上sqlserver2008.。天啊 崩溃了都。。
有一个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() 获得数据库链接失败.rnrn链接类型:"
+ dbClassName
+ "rn链接位置:"
+ dbUrl
+ "rn用户/密码"
+ 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); // 输出异常信息
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(18)
是的 按你说的 我单独写了个连接2008的 直接显示的就是 Not found the driver 可是真的也导了包啊。。JDK下也放了。。不知原因。。
Java是最好调试的语言吧,报错都是堆栈的形式,一看就知道是哪行代码的问题
回复
无代码无真相,无目录层次结构图无真相
我单独写了个连接2008的 直接显示的就是 Not found the driver 可是真的也导了包啊。。JDK下也放了。。不知原因。。
对的 后来我自己单独写了个连接sqlserver2008的 改成这个就可以连上了 不过在我那个工程里改成这样还是报这样错误。。估计是工程哪里有错 。。
小弟眼拙,这个是空指针吧
然后呢 最讨厌的就是个NulllPointer Exception 哎。。无解了
这个肯定是数据库连接字符串的问题,把用户名和密码放到字符串中试试
什么意思 后来我自己单独写了个连接sqlserver2008的Test 可以连上也可以操作 不过在我那个工程里只要是对sqlserver2008操作的都是报这样错误。。估计是工程哪里有错 。。无法连上它。。好奇怪!
好吧 你没认真看代码 我上面有这个了。。
估计是sql server配置的问题,到SQL Server Configuration Manager把tcpip/named pipe配置enabled.
我自己单独写了个连接sqlserver2008的Test 可以连上也可以操作 不过在我那个工程里只要是对sqlserver2008操作的都是报这样错误。。估计是工程哪里有错 。。无法连上它。。好奇怪! 我自己再好好看看 空指针错误真的是要人命
@h-2010 那说明你的驱动不对啊?
你单独写一个连接数据库的看看……
有什么好策略么。。求教!
真不想说这是条不归路
玩java的痛啊
不要沉啊 求大神指点。。。