java连接数据库,用的是jdbc与SQL Server2000连接,这种方法我一直没连接成功过,下面是我连接的代码,showinfor是已经建好的数据库名,数据库用户名和密码都是"sa",请看出错误的指教下。 public dbConn() {
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection conn = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=showinfor",
"sa", "sa");
PreparedStatement pstmt = conn.prepareStatement(
"select * from student");
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
System.out.println(rs.getInt(1));
}
} catch (ClassNotFoundException ex) {
System.out.println("Can't find the class!");
} catch (SQLException ex) {
ex.printStackTrace();
}
}但是我用这种方法却可以连接: public dbConn() {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException ex) {
System.out.println("Can't find the class!");
}
String str="jdbc:odbc:show";
try {
Connection conn = DriverManager.getConnection(str);
Statement st=conn.createStatement();
ResultSet rs=st.executeQuery("select * from student");
while(rs.next()){
System.out.println(rs.getInt("Id"));
}
} catch (SQLException ex1) {
ex1.printStackTrace();
}
}
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection conn = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=showinfor",
"sa", "sa");
PreparedStatement pstmt = conn.prepareStatement(
"select * from student");
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
System.out.println(rs.getInt(1));
}
} catch (ClassNotFoundException ex) {
System.out.println("Can't find the class!");
} catch (SQLException ex) {
ex.printStackTrace();
}
}但是我用这种方法却可以连接: public dbConn() {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException ex) {
System.out.println("Can't find the class!");
}
String str="jdbc:odbc:show";
try {
Connection conn = DriverManager.getConnection(str);
Statement st=conn.createStatement();
ResultSet rs=st.executeQuery("select * from student");
while(rs.next()){
System.out.println(rs.getInt("Id"));
}
} catch (SQLException ex1) {
ex1.printStackTrace();
}
}
mssqlserver.jar
msutil.jar
将上面三个类放在工程下,或classpath里面。
Connection conn = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=showinfor",
"sa", "sa");
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:525)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at com.gayly.dbConn.<init>(dbConn.java:47)
at com.gayly.dbConn.main(dbConn.java:64)
mssqlserver.jar
msutil.jar
这三个类包全吗?只有mssqlserver.jar类包不好用。
再就是main方法
public static void main(String[] args) {
dbConn c = new dbConn(); 这一行有错
}
查查
msbase.jar
mssqlserver.jar
msutil.jar
的版本是否和SQL SERVER一致
如果你的系统平台是win xp sp2的话
你还需要打开Tcp 1433 和 UDP1433 端口