首页 > 代码库 > 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