站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题java连接数据库

java连接数据库

摘要: java连接数据库


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();
}
}


运行的时候要把sqlserver的jdbc包放在classpath里面才行。


msbase.jar
mssqlserver.jar
msutil.jar
将上面三个类放在工程下,或classpath里面。


我在导包的时候已经导进了啊,难道非要放在classpath里才可以吗?


有两种可能。第1你没有加载SQL的驱动.如果加载了不行的话你把语句改一下看看
Connection conn = DriverManager.getConnection(
"jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=showinfor",
"sa", "sa");



楼上说的我也改了,不行。


那你确认一下看看SQL的服务是否打开了?


当然打开了,我是用的两种方法连接的,第一种连接成功,而第二种却连不好


把错误贴上来吧。


java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
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.(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.(dbConn.java:47)
at com.gayly.dbConn.main(dbConn.java:64)



调试了吗?在哪句出错的。


msbase.jar
mssqlserver.jar
msutil.jar
这三个类包全吗?只有mssqlserver.jar类包不好用。


Connection conn = DriverManager.getConnection( 这一行有错误
再就是main方法
public static void main(String[] args) {
dbConn c = new dbConn(); 这一行有错
}


可能是驱动的版本不对....
查查
msbase.jar
mssqlserver.jar
msutil.jar
的版本是否和SQL SERVER一致


如果你的系统平台是win xp sp2的话,你连接mssql server 2000需要打上sql server 2000 sp3的补丁,这样才好使。切记,双击sql server 2000 sp3.exe运行后并不代表就打上补丁了,你需要找到解压的目录后执行setup才是真正的打补丁。
如果你的系统平台是win xp sp2的话
你还需要打开Tcp 1433 和 UDP1433 端口





哭死 昨天刚遇到这个问题 搞了一天 都郁闷 坏了 唉今天就看到答案 郁闷 就是 SP3包的问题,我安装的是SP4 怒了 那个安装真TMD 讨厌 安装一下还以为是安装完毕了呢 谁知道....是解压 疯了~~~



↑返回目录
前一篇: java可以访问其他机器的硬盘吗?
后一篇: java小游戏的移植