java jdbc与sqlserver_JAVA之JDBC的相关问题(无法与SQLServer连接的解决)

昨天看到了JDBC的那一章,要用到数据库,就百度了SQL下载安装了,安装完之后,才知道还要下载驱动,于是百度又下了mysql....jar的包,又搜索如何加入到项目中,

一切完成之后就开始加载去驱动连接数据库了

问题就来了。。

首先try catch 一下class.forName("com.mysql.driver")是没有异常的

也就是说,是这几条代码出了问题,再把connection try catch,发现有SQL异常

String url = "jdbc:mysql://127.0.0.1:11588/test728";

String user = "sa";

String password = "123456";

Connection con = DriverManager.getConnection(url,user,password);

也就是说这四句至少有一个出了问题。

首先我可以确定sa和密码都能登录,于是问题应该在url或者connection上,也有可能connection没问题,是getConnection的参数的url出了问题,。。。

在这里要插入一个问题,就是数据库占用的端口问题。

百度了一下有两种方法。

方法一:

打开数据库,新建查询,输入code,

2ea8f92502221ba29bc243c8b6cc71c1.png

可以看到端口号为11588

方法二:

f449b32ae99a62032da8f76c0a207e8f.png

186ab9c0383351f2881e2ba710b0d6ef.png

f6ac31bb514b98d70c948392ef5e3dd2.png

在这里我还要插入一个我遇到的问题,就是IPALL的TCP动态端口是0,,,我的是0,,,

问题是SQLNAME的TCP/IP协议未开启

解决办法就是把它开启,然后再把SQLNAME的服务重新启动,这是必须的,否则更改无效。

f71280c3d09f590623b0e5cf819632b5.png

还可以用cmd的netstat -an命令查看端口是否在使用

94ff73e670e372790f056f364ff9c076.png

可以看到正常使用

把url写好之后try  catch还是报错了,各种百度之后才发现问题,,,原来我下载的是SQL server 2008  然而url写的是 mysql  这两个数据库不是一家人。。。

于是乎,我又重新下载SQL的jar,重新加入项目,重新写代码

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

String url = "jdbc:sqlserver://127.0.0.1:11588;DatabaseName=test728";

String user = "sa";

String password = "123456";

Connection con = DriverManager.getConnection(url,user,password);

到这里try  catch一下没有任何异常,,

下面就连接数据库插入一个表试试吧

try {

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

String url = "jdbc:sqlserver://127.0.0.1:11588;DatabaseName=test728";

String user = "sa";

String password = "123456";

Connection con = DriverManager.getConnection(url,user,password);

String sql = "insert into dbo.StuInfo (username,password,sex,age) values('张三','123','男',22)";

Statement sta = con.createStatement();

sta.executeUpdate(sql);

con.close();

} catch (SQLException e) {

// TODO: handle exception

System.out.println("error");

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

System.out.println("class error");

}

编译运行无异常

c95429595738096fa0822863167aaaa0.png

以上是我本人遇到的问题,算挺多的

欢迎指正。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值