首页 > 代码库 > Eclipse Java Neon 通过JDBC连接SQL Server2008

Eclipse Java Neon 通过JDBC连接SQL Server2008

JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。

1.配置SQL Server:开始 > Microsoft SQL Server2008 > SQL Server 配置管理器 > SQL Server 网络配置 > SQLEXPRESS 的协议 > TCP/IP

技术分享 

  技术分享

 

 

 

TCP/IP配置:修改IP是“127.0.0.1”的一项和IPAll的一项,修改完成后确定开启TCP/IP

技术分享     技术分享

2.在SQL Server2中创建数据库MyHotel,建立相关表

3.Eclipse中代码如下:

 1 import java.sql.*;
 2 
 3 class GetCon {
 4     Connection con;
 5     //得到连接好数据库MyHotel的Connection
 6     public Connection getCon() {
 7         try {                    
 8             Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
 9         }catch (ClassNotFoundException e) {
10             System.out.println(e);
11         }
12         try {
13             String url = "jdbc:sqlserver://127.0.0.1:1433;DateBaseName= MyHotel ";
14             String saName = "sa";
15             String saPw = "123";
16             con = DriverManager.getConnection(url,saName,saPw);        
17         } catch (SQLException e) {
18             System.out.println(e);
19         }
20         return con;
21     }
22 }
23 
24 public class Test1 {
25     public static void main(String[] args) {
26         GetCon gc = new GetCon();
27         Connection con;
28         Statement sql;
29         ResultSet rs;        
30         try {    
31             con = gc.getCon();
32             sql = con.createStatement();
33             //查询数据库MyHotel中Hotel表中迪拜帆船酒店单人间的价格
34             rs = sql.executeQuery("select Price from Hotel "
35                     + "where Hname = ‘迪拜帆船酒店‘ and Rmtype = ‘单人间‘");
36             if (rs.next()) {
37                 System.out.println(rs.getString("Price"));
38             }
39         } catch (SQLException e) {
40             e.printStackTrace();
41         }
42     }
43 }

 

#错误总结#

1.未引入sqljdbc4.0报错:

java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
java.sql.SQLException: No suitable driver found for jdbc:sqlserver://127.0.0.1:1433;DateBaseName= MyHotel
Exception in thread "main" java.lang.NullPointerException
at Test1.main(Test1.java:32)

解决方法:TestHotel(创建的java项目)> Properties > Java Build Path > Add External JARs... > 选择下载好的sqljdbc4.jar > OK

2.未设置默认数据库

com.microsoft.sqlserver.jdbc.SQLServerException: 对象名 ‘Hotel‘ 无效。
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1515)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:792)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:689)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155)
    at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQuery(SQLServerStatement.java:616)
    at Test1.main(Test1.java:34)

解决方法1:在所用表Hotel前加MyHotel..(注意是两个点!!)即“ 数据库+ .. +表名 ”

解决方法2:修改默认数据库,在SQL Server中选择连接时使用的登录名(我的是sa) sa > 属性 > 常规 > 默认数据库 > 选择需要的数据库(我的是MyHotel)

 

Eclipse Java Neon 通过JDBC连接SQL Server2008