Java连接Sql Server的过程及遇到的问题(极端新手向)

在安装完SQL Server 2008以后,接下来要做的就是用Java实现与SQL的连接。一开始在网上找了篇文章,是用 com.sun.rowset.CachedRowSetImpl 这个类来实现的。这个类虽然在oracle上可以找到API,但是死活找不到下载的地方,而我eclipse里面又没有,花了好几天还是不行,后来换了种方法,是用JDBC来实现的。

首先需要做的是下载微软的JDBC_DRIVER。可以去官网下:
http://msdn.microsoft.com/en-us/sqlserver/aa937724
下载完之后放到自己制定的文件夹里解压备用。里面有2个,一个是sqljdbc.jar 还有一个是sqljdbc4.jar 我的JRE是1.8.0的所以用后一个。

首先需要做的是下载微软的JDBC_DRIVER。可以去官网下:http://msdn.microsoft.com/en-us/sqlserver/aa937724 。下载完之后放到自己制定的文件夹里解压备用。里面又2个,一个是sqljdbc.jar 还有一个是sqljdbc4.jar 我的JRE是1.8.0的所以用后一个。

接下来是打开SQL配置器进行配置。要打开SQL配置器,可以开始->Microsoft SQL Server 2008->配置工具->Sql Server 配置管理器。 我打开之后有一个问题,就是Sql Server服务一栏右边显示的是sqlserver服务远程过程调用失败 这个问题我后来解决了,原因是我之前不知什么原因装了sql server 2012而现在装的是2008版,只要卸载2012 express localdb就行。如图所示
这里写图片描述
卸载掉之后就可以正常使用。

现在开始正常的配置。
SQL2000的默认端口是1433,所以只要开启端口就能连得上,但08的端口据说是动态的,具体的本人也不清楚,就是因为这个端口我也被整了2天,最后终于连上了
打开配置器:
这里写图片描述
将IP ALL的TCP动态端口(默认1163)改为1433,不改也行,因为大部分人的习惯是用默认的1433,在IP2已启用选择——是,确定。
同样的方法,开启客户端的TCP/IP,端口也为1443,如图:
这里写图片描述
这里我碰到了一个问题。由于我电脑装了很多东西(比如说虚拟机)所以显示了很多IP,其他的不用管,只要对127.0.0.1那个IP和IP ALL进行调节就行了。
调整完以后要重启sql server服务才能生效,重启方法见http://book.51cto.com/art/200909/154562.html
然后在DOS命令中输入测试 telnet 127.0.0.1 1433,
如果结果只有一个光标在闪动,那么就说明127.0.0.1 1433端口已经打开。
如果出现连接主机端口1433没打开,久要换端口。
这里我一开始telnet指令用不了,解决方案见http://www.cr173.com/html/18697_1.html
现在进入正题。启动eclipse,创建java项目,导入sqljdbc4.jar,然后建一个javaConSQL的类,复制如下代码
(关于导入的方法,见http://bbs.csdn.net/topics/60172847)

import java.sql.*;

public class javaConSQL{
    public static void main(String[] args) {
        String JDriver="com.microsoft.sqlserver.jdbc.SQLServerDriver";//SQL数据库引擎
        String connectDB="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=tempdb";//数据源
        try{
            Class.forName(JDriver);//加载数据库引擎,返回给定字符串名的类
        }catch(ClassNotFoundException e){ //e.printStackTrace();
            System.out.println("加载数据库引擎失败");
            System.exit(0);
        }     
        System.out.println("数据库驱动成功");

        try{
            String user="sa";
            String password="admin";
            Connection con=DriverManager.getConnection(connectDB,user,password);//连接数据库对象
            System.out.println("连接数据库成功");
            Statement stmt=con.createStatement();//创建SQL命令对象

            //创建表
            System.out.println("开始创建表");
            String query="create table TABLE1(ID NCHAR(2),NAME NCHAR(10))";//创建表SQL语句
            stmt.executeUpdate(query);//执行SQL命令对象
            System.out.println("表创建成功");

            //输入数据
            System.out.println("开始插入数据");
            String a1="INSERT INTO TABLE1 VALUES('1','旭哥')";//插入数据SQL语句
            String a2="INSERT INTO TABLE1 VALUES('2','伟哥')";
            String a3="INSERT INTO TABLE1 VALUES('3','张哥')";
            stmt.executeUpdate(a1);//执行SQL命令对象
            stmt.executeUpdate(a2);   
            stmt.executeUpdate(a3);
            System.out.println("插入数据成功");

            //读取数据
            System.out.println("开始读取数据");
            ResultSet rs=stmt.executeQuery("SELECT * FROM TABLE1");//返回SQL语句查询结果集(集合)
            //循环输出每一条记录
            while(rs.next()){
                //输出每个字段
                System.out.println(rs.getString("ID")+"\t"+rs.getString("NAME"));
            }
            System.out.println("读取完毕");

            //关闭连接
            stmt.close();//关闭命令对象连接
            con.close();//关闭数据库连接
        }
        catch(SQLException e){
            e.printStackTrace();
            //System.out.println("数据库连接错误");
            System.exit(0);
        }
    }
}

运行,可得到结果
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值