分享

使用JDBC访问SQLServer 2005

 冷刃寒冰 2010-12-15

万恶的毕业设计要用到J2EE做B/S/S架构的系统,本来导师说着要用Oracle数据库来着,我觉得Oracle不如SQLServer简单易用,就换了SQLServer 2005 。
记得以前做数据库的课程设计时,想用SQLServer来着,但用JDBC怎么都连不上,后来放弃了SQLServer选用了MySQL。现在又是同样的问题,在java程序里使用JDBC总是建立连接失败,经过一段时间的搜寻,找到了解决方法,贴出来给广大遇到同样问题的同胞。

1.去下载一个SQLServer用的JDBC驱动。直接去微软下载就行,下载下来是一个exe文件,运行那个exe把文件解压到随便一个文件夹,取里面的sqljdbc4.jar和sqljdbc.jar备用。

2.配置SQLServer 2005 。在SQLServer 2005中,默认不开启TCP/IP协议,此步主要是开启协议并使SQLServer接受远程访问。具体步骤如下:
(1)打开SQLServer配置管理器(SQLServer Configuration Manager),在配置管理器重转到SQL Server 2005 网络配置(SQL Server 2005 Network Configuration)下面的SQLEXPRESS协议(Protocols for SQLEXPRESS)。

image

(2)双击TCP/IP那一项打开TCP/IP属性。将”已启用(Enable)”那一项置为“是”。切换到“IP 地址”选项卡,将“IP ALL”中的“TCP 端口(TCP Port)”设置为1433,然后确定。


(3)打开SQLServer 外围应用配置器(SQLServer Surface Area Configuration),然后打开“服务和连接的外围应用配置器”,转到SQLEXPRESS->Database Engine->远程连接,选择“本地链接和远程连接”下面的“仅使用TCP/IP”或者“同时使用TCP/IP和named pipes”,这里我选择了前者,然后应用,确定。

image

(4)重新启动SQLServer服务。

3.测试连接。会的同学请跳过~~
(1)在SQLServer Management Studio Express中建立数据库testDB(名字随便起,数据表也随便),在testDB中建表
CREATE TABLE user
(
ID bigint NOT NULL,
Name varchar(20) NOT NULL,
Email varchar(50) NULL
)
然后随便往表里加几条数据。
(2)建个java application工程(我用的eclipse,其他IDE雷同),把SQLServer驱动导入工程,注意,如果你使用的JDK6,那么导入sqljdbc4.jar,如果是低版本的JDK导入sqljdbc.jar,不要弄错,否则连接时会报错。
(3)使用JDBC访问SQLServer的测试程序代码。

[Copy to clipboard]View Code JAVA
1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            16
            17
            18
            19
            20
            21
            22
            23
            24
            25
            26
            27
            28
            29
            30
            31
            32
            33
            34
            35
            36
            37
            38
            39
            40
            41
            42
            43
            44
            45
            46
            47
            48
            49
            50
            51
            52
            53
            54
            55
            56
            57
            58
            59
            60
            61
            62
            63
            64
            65
            66
            
package jdbc;
             
            import java.sql.Connection;
            import java.sql.DriverManager;
            import java.sql.ResultSet;
            import java.sql.SQLException;
            import java.sql.Statement;
             
            public class Test {
            private Connection conn = null;
             
            public Test() {
            super();
            }
             
            public void getConnection() {
            try {
            Class
            .forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
            .newInstance();
            String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=testDB";
            String USER = "sa"; // 根据你自己设置的数据库连接用户进行设置
            String PASSWORD = "123"; // 根据你自己设置的数据库连接密码进行设置
            conn = DriverManager.getConnection(URL, USER, PASSWORD);
            } catch (java.lang.ClassNotFoundException ce) {
            System.out.println("Get Connection error:");
            ce.printStackTrace();
            } catch (java.sql.SQLException se) {
            System.out.println("Get Connection error:");
            se.printStackTrace();
            } catch (Exception e) {
            System.out.println("Get Connection error:");
            e.printStackTrace();
            }
            }
             
            public void testConnection() {
            if (conn == null)
            this.getConnection();
            try {
            String sql = "SELECT * FROM user";
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(sql);
            while (rs.next()) {
            System.out.print(rs.getString("ID")+" ");
            System.out.print(rs.getString("Name")+" ");
            System.out.println(rs.getString("Email"));
            }
            rs.close();
            stmt.close();
            } catch (SQLException e) {
            System.out.println(e.getMessage());
            e.printStackTrace();
            } finally {
            if (conn != null)
            try {
            conn.close();
            } catch (SQLException e) {
            }
            }
            }
            public static void main(String[] args) {
            Test bean = new Test();
            bean.testConnection();
            }
            }

(4)运行程序,没啥意外的话应该就OK了。连接代码与SQLServer2000的有所不同。这两句可以记下来备用~
Class.forName(”com.microsoft.sqlserver.jdbc.SQLServerDriver”).newInstance();
String URL = “jdbc:sqlserver://localhost:1433;DatabaseName=数据库名称”;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多