eclipse连接SQLserver

就是最近学习JDBC(Java PataBase Connectivity)数据库编程,结果发现连接都连接不上去,

我就先将自己的想法和流程说一下,就是我现在是连接上了,但是之前也没成功,然后这没成功的原因我还是不太知道.网上很多资料感觉都和我看到不一样,就一个JDK安装的目录,我目录下面都没有那些文件,还有就是Telnet服务的开始,现在在服务里面都没有找到这个,但是他是可以直接用的.

 

目录

下载 Microsoft JDBC Driver:

 SQLserver的准备:

 eclipse软件中的运行:


下载 Microsoft JDBC Driver:

先查看一下自己JDK的版本,这个好像关系也不是很大,不过我还是注意了一下.

win+R,输入cmd进入命令提示符,然后输入下面的指令,查看java的版本,这里的'-'是需要有,不然他的意思就是把version当成一个字节码文件.

java -version

 这里可以查看到我的java version是17版的,然后进入这个网址,页面的下面也有详细的说明.系统要求 - JDBC Driver for SQL Server | Microsoft Learnhttps://learn.microsoft.com/zh-cn/sql/connect/jdbc/system-requirements-for-the-jdbc-driver?view=sql-server-ver16

 从这里就知道了将要下载的Microsoft JDBC Driver版本,登入这个网址找到自己的,他这个都是压缩包,我这里选择的是.zip格式的.发行说明 - JDBC Driver for SQL Server | Microsoft Learnhttps://learn.microsoft.com/zh-cn/sql/connect/jdbc/release-notes-for-the-jdbc-driver?view=sql-server-ver16#previous-releases

 下载之后就可以解压,解压得到下面的这些文件.jar文件,根据前面的说明,我们这里选择mssql-jdbc-10.2.3.jre17.jar直接复制.

 SQLserver的准备:

这个我也不确定是不是要下载SQLserver软件,因为我是已经下载了SQLserver软件的,详细安装可以查看这个SQL Server安装教程_不来虚的,脚踏实地的博客-CSDN博客https://blog.csdn.net/weixin_53337941/article/details/123604444

 先就是登录SQLserver,最开始是Windows身份验证登录的,咱先登录进入,服务器的名称可以是电脑的设备名称,也可以是127.0.0.1(环回地址)或者是localhost,以及0.0.0.0.这里的话我是用设备名称登录的,所以其他的方法没试过.如果登录失败可以是安装的时候,数据库引擎安装失败,这种我就是删掉从新安装,删除的时候一定要删干净.反正如果卸载不成功安装还是会失败,下面链接大家可以参考一下,我当时是先关闭服务,然后通过控制面板找到今天安装的SQLserver,再通过CCleaner来修复注册表.最后重启电脑,这是我当时的操作,当时就是重复了几次才安装好,在安装的时候把杀毒软件也关了,我当时是把火绒安全关闭开始安装的.彻底卸载SQL Server_sqlserver数据库卸载_未来的四只猫的博客-CSDN博客https://blog.csdn.net/weixin_43808666/article/details/87864369

  

 登录之后找到sa,右键选择属性,选择SQLserver身份验证.设置密码登操作,最后确定.

 

 

 关闭SQLserver软件,重新登录选择SQLserver身份验证.

 然后自己建一个库,建一个表.接下来会用到.https://blog.csdn.net/zys_shan/article/details/104897503https://blog.csdn.net/zys_shan/article/details/104897503

 解决SQL server默认1433端口telnet不通的情况。我同学发现自己的端口打开出现了错误,自己的ip可以ping通,但是telnet无法连接,然后是通过这下面的方案解决的。(第二个提供了遇到各种情况的分析)

SQ LServer默认1433端口telnet不通的解决办法 - 民工黑猫 - 博客园 (cnblogs.com)https://www.cnblogs.com/yyee/p/14249983.html系统安装SQL Sever2000后1433端口未开放,如何打开1433端口的解决方法-蒲公英云 (dandelioncloud.cn)https://www.dandelioncloud.cn/article/details/1509374344169074690

 eclipse软件中的运行:

新建一个包和一个类,把.jar文件也粘贴进去.然后通过下面的操作形成奶瓶图标的文件.这个网上是说选下面一个Configure Build Path...,但是我那个Libraries下面的Add都是灰色的,选中不了.

 

 灰色的,选中不了,就只能用上面的方法来添加.

 配置设置好了接下来就是代码部分.

    //连接数据库的url
	private static final String url="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=forTest";//forTest为你的数据库名
	//数据库的用户名
	private static final String username="sa";//你的数据库用户名
	//连接数据库的密码
	private static final String password="123456";//你的密码
	//数据库驱动
	private static final String className="com.microsoft.sqlserver.jdbc.SQLServerDriver";

 先定义三个字符串,用于接下来获取数据库连接,URL中的jdbc:sqlserver应该是连接sqlserver的数据库吧,127.0.0.1就是地址,1433就是SQLserver的端口,没有打开的需要打开,DatabaseName=forTest中的forTest就是你数据库的库名.

username="sa";中的sa就是你数据库的用户名称,最开始都有一个sa的数据库用户名,password就是你sql登录数据库的密码,密码是自己设置的.当然变量名字是自己任取的.

这里要注意的就是,我之前也是这样写的,但是产生了报错,后面加上了这个语句就没事了.具体的原理我不知道,但是就是改了之后数据库连接成功了.

//encrypt=false
private static final String rul="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=forTest;encrypt=false";

 https://blog.csdn.net/I_am_shy/article/details/129218366https://blog.csdn.net/I_am_shy/article/details/129218366

加载驱动

        try {
			//加载驱动
			Class.forName(className);
		}catch(ClassNotFoundException e) {
			System.out.println("加载数据库驱动失败");
			e.printStackTrace();
		}

数据库连接

        try {
			//获取数据库连接
			con=DriverManager.getConnection(url,username,password);
		}catch(SQLException e) {
			System.out.println("创建数据库连接失败!");
			con=null;
			e.printStackTrace();
		}

没有产生报错就是连接成功了.

import java.sql.*;
 
public class Main {
	//数据库连接对象
	private Connection con;
	//还是要加上encrypt=false,不然程序会报错
	//连接数据库的url
	private static final String url="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=forTest;encrypt=false";//forTest为你的数据库名		
	//数据库的用户名
	private static final String username="sa";//你的数据库用户名
	//连接数据库的密码
	private static final String password="123456";//你的密码
	//数据库驱动
	private static final String className="com.microsoft.sqlserver.jdbc.SQLServerDriver";

	public static void main(String[] args) {
		try {
			//加载驱动
			Class.forName(className);
		}catch(ClassNotFoundException e) {
			System.out.println("加载数据库驱动失败");
			e.printStackTrace();
		}
		try {
			//获取数据库连接
			Connection conn=DriverManager.getConnection(url,username,password);
			System.out.println("数据库连接成功");
		}catch(SQLException e) {
			System.out.println("创建数据库连接失败!");
			e.printStackTrace();
		}
	}	
}

拓展

我数据库里面有一些数据,就可以用Java来查询了.查询得到我数据类型要匹配用getString来不会报错,但是数据使用就不方便了,所以最好还是保持和数据库中的数据类型一致.查询语句也不能直接粘贴运行,反正就是要灵活变通.

 
import java.sql.*;
 

public class Main {
	//还是要加上encrypt=false,不然程序会报错
	//连接数据库的url
	private static final String url="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=forTest;encrypt=false";//forTest为你的数据库名		
	//数据库的用户名
	private static final String username="sa";//你的数据库用户名
	//连接数据库的密码
	private static final String password="123456";//你的密码
	//数据库驱动
	private static final String className="com.microsoft.sqlserver.jdbc.SQLServerDriver";

	public static void main(String[] args) {
		try {
			//加载驱动
			Class.forName(className);
		}catch(ClassNotFoundException e) {
			System.out.println("加载数据库驱动失败");
			e.printStackTrace();
		}
		try {
			//获取数据库连接
			Connection conn=DriverManager.getConnection(url,username,password);
			//System.out.println("数据库连接成功");
			Statement stat=conn.createStatement();
			//定义静态select语句
			String sql="select top 10 sc.Sno,Sname,Ssex,Cno,Grade "
					+ "from sc,s "
					+ "where sc.sno=s.sno and grade>=60"
					+ "order by Grade desc";
			//执行静态select语句
			ResultSet rs=stat.executeQuery(sql);//语句不能为空,而且不合法也会报错,还有就是里面的要接收的类型要匹配
			System.out.println("Sno\t\tSname\tSsex\tCno\tGrade");
			while(rs.next()) {
				int Sno=rs.getInt(1);//通过列索引获得指定列的值
				String Sname=rs.getString(2);//通过列索引获得指定列的值
				String Ssex=rs.getString(3);//通过列索引获得指定列的值
				String Cno=rs.getString(4);//通过列索引获得指定列的值
				int Grade=rs.getInt(5);//通过列索引获得指定列的值
				System.out.println(Sno+"\t"+Sname+"\t"+
				Ssex+"\t"+Cno+"\t"+Grade);//打印查询到的结果
			}
			//关闭连接,后开先关
			stat.close();
			conn.close();
		}catch(SQLException e) {
			System.out.println("创建数据库连接失败!");
			e.printStackTrace();
		}
	}	
}

 总结:

本人还是学生,然后也是刚学jdbc,如果有错误的地方,希望有大佬能够指正,谢谢大家了,也希望这可以帮助到大家.

  • 9
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

封奚泽优

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值