让我抓狂的JAVA代码
代码如下:
package innerexam;
import java.sql.*;
public class SQLHelper {
private Connection conn = null;
private PreparedStatement pdstmt = null;
private ResultSet rs = null;
public SQLHelper() {
}
private String getConnectionURL() {
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JavaDatabase ";
return url;
}
//初始化 Connection 对象
public void initConnection() {
try {
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver ");
} catch(ClassNotFoundException ce) {
System.out.println( "类库找不到 " + ce.getMessage());
}
try {
conn = DriverManager.getConnection(getConnectionURL(), "sa ", "sa ");
}
catch (SQLException ex) {
System.out.println( "Connection 对象创建失败 ");
}
}
//查询方法
public ResultSet queryRecord(String uname, String upwd) {
initConnection();
try {
pdstmt = conn.prepareStatement(
"select * from UserInfo where LoginName = ? and PassWord = ? ");
pdstmt.setString(1, uname);
pdstmt.setString(2, upwd);
rs = pdstmt.executeQuery();
return rs;
}
catch (SQLException ex) {
System.out.println( "查询过程中出错 " + ex.getMessage());
return null;
}
}
}
现在碰到的问题是:编译没有问题,一运行就老说Connection对象创建失败,我实在查不出哪里出了问题,调试也没用,哪位高手帮忙看看吧,先谢过了啊!
[解决办法]
数据库开了吗?
代码好像没错啊
[解决办法]
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=JavaDatabase ";
试试这个,应该是这个地方错了
[解决办法]
这个地方的连接语句没有错!
你的数据库用户名和密码都是 sa 吗???
你检查一下!
[解决办法]
在我机器上测试没错啊~
检查下数据库服务开了没,数据库名,用户名,密码是否正确
[解决办法]
数据库的1433端口开了?
[解决办法]
靠 大哥
你initConnection(); 这样行吗?
这个方法又不是static的 不new一下就用?开玩笑吧
[解决办法]
楼上说的对
[解决办法]
代码没错,数据库服务开了没,连接用户名和密码对吗,端口有没有改过啊
[解决办法]
检查数据库服务是否打开
[解决办法]
boy_wh520(烟在风中飘荡) ( ) 信誉:95
哪里需要new一下了..创建一个类的对象也不就是为了使用里面的属性和方法么.
他这数据库连接层的代表和业务处理代码都写在同一个类里,估计是从界面层中直接创建了该类的对象,然后调用queryRecord方法吧.
[解决办法]
这些交个hibernate去做吧,代码没错,检查用户名 密码是否为sa,数据库断口是否改动过,服务里数据库是否启动,数据库驱动包是否在web-inf/lib文件夹下 应该问题不是很大,仔细点就好
[解决办法]
try {
conn = DriverManager.getConnection(getConnectionURL(), "sa ", "sa ");
}
catch (SQLException ex) {
System.out.println( "Connection 对象创建失败 ");
}
catch (SQLException ex) {
ex.printStackTrace(); //查看错误的根源
System.out.println( "Connection 对象创建失败 ");//等于没有说,这个是抛出给用户看的,不是你 调试时该看的!
}
[解决办法]
public SQLHelper() {
}
private String getConnectionURL() {
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JavaDatabase ";
return url;
}
这个方法不是static的
try {
conn = DriverManager.getConnection(getConnectionURL(), "sa ", "sa ");
}
catch (SQLException ex) {
System.out.println( "Connection 对象创建失败 ");
}
到这里直接就用?
[解决办法]
public void initConnection() {
try {
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver ");
} catch(ClassNotFoundException ce) {
System.out.println( "类库找不到 " + ce.getMessage());
}
没见那个地方调用这个方法,可能没有加载里面的数据库驱动,不会是自动初始化吧 ?
[解决办法]
菜鸟总是喜欢把exception抓住后吃掉,打印自以为自己认识的错误信息。
[解决办法]
代码应该没问题的!
[解决办法]
其实我想说的是,
你把sql的JAR包导入进来了么..- -#
[解决办法]
虽然代码改来可以运行了,但是代码还是有一点问题:initConnection()在queryRecord()中调用不好。
[解决办法]
你有没有打SP4包,
如果打过,你在下面代码换上看看
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver ").newInstance();
[解决办法]
赞 关闭数据源的说法~ 飘过~