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,


可以看到端口号为11588


方法二:





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

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

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



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


可以看到正常使用


把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");
		}

编译运行无异常



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


欢迎指正。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值