当前位置:   article > 正文

eclipse连接SQLserver_使用eclipse添加sqlserver数据库

使用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都是灰色的,选中不了.

 

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

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

  1. //连接数据库的url
  2. private static final String url="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=forTest";//forTest为你的数据库名
  3. //数据库的用户名
  4. private static final String username="sa";//你的数据库用户名
  5. //连接数据库的密码
  6. private static final String password="123456";//你的密码
  7. //数据库驱动
  8. 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登录数据库的密码,密码是自己设置的.当然变量名字是自己任取的.

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

  1. //encrypt=false
  2. 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

加载驱动

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

数据库连接

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

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

  1. import java.sql.*;
  2. public class Main {
  3. //数据库连接对象
  4. private Connection con;
  5. //还是要加上encrypt=false,不然程序会报错
  6. //连接数据库的url
  7. private static final String url="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=forTest;encrypt=false";//forTest为你的数据库名
  8. //数据库的用户名
  9. private static final String username="sa";//你的数据库用户名
  10. //连接数据库的密码
  11. private static final String password="123456";//你的密码
  12. //数据库驱动
  13. private static final String className="com.microsoft.sqlserver.jdbc.SQLServerDriver";
  14. public static void main(String[] args) {
  15. try {
  16. //加载驱动
  17. Class.forName(className);
  18. }catch(ClassNotFoundException e) {
  19. System.out.println("加载数据库驱动失败");
  20. e.printStackTrace();
  21. }
  22. try {
  23. //获取数据库连接
  24. Connection conn=DriverManager.getConnection(url,username,password);
  25. System.out.println("数据库连接成功");
  26. }catch(SQLException e) {
  27. System.out.println("创建数据库连接失败!");
  28. e.printStackTrace();
  29. }
  30. }
  31. }

拓展

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

  1. import java.sql.*;
  2. public class Main {
  3. //还是要加上encrypt=false,不然程序会报错
  4. //连接数据库的url
  5. private static final String url="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=forTest;encrypt=false";//forTest为你的数据库名
  6. //数据库的用户名
  7. private static final String username="sa";//你的数据库用户名
  8. //连接数据库的密码
  9. private static final String password="123456";//你的密码
  10. //数据库驱动
  11. private static final String className="com.microsoft.sqlserver.jdbc.SQLServerDriver";
  12. public static void main(String[] args) {
  13. try {
  14. //加载驱动
  15. Class.forName(className);
  16. }catch(ClassNotFoundException e) {
  17. System.out.println("加载数据库驱动失败");
  18. e.printStackTrace();
  19. }
  20. try {
  21. //获取数据库连接
  22. Connection conn=DriverManager.getConnection(url,username,password);
  23. //System.out.println("数据库连接成功");
  24. Statement stat=conn.createStatement();
  25. //定义静态select语句
  26. String sql="select top 10 sc.Sno,Sname,Ssex,Cno,Grade "
  27. + "from sc,s "
  28. + "where sc.sno=s.sno and grade>=60"
  29. + "order by Grade desc";
  30. //执行静态select语句
  31. ResultSet rs=stat.executeQuery(sql);//语句不能为空,而且不合法也会报错,还有就是里面的要接收的类型要匹配
  32. System.out.println("Sno\t\tSname\tSsex\tCno\tGrade");
  33. while(rs.next()) {
  34. int Sno=rs.getInt(1);//通过列索引获得指定列的值
  35. String Sname=rs.getString(2);//通过列索引获得指定列的值
  36. String Ssex=rs.getString(3);//通过列索引获得指定列的值
  37. String Cno=rs.getString(4);//通过列索引获得指定列的值
  38. int Grade=rs.getInt(5);//通过列索引获得指定列的值
  39. System.out.println(Sno+"\t"+Sname+"\t"+
  40. Ssex+"\t"+Cno+"\t"+Grade);//打印查询到的结果
  41. }
  42. //关闭连接,后开先关
  43. stat.close();
  44. conn.close();
  45. }catch(SQLException e) {
  46. System.out.println("创建数据库连接失败!");
  47. e.printStackTrace();
  48. }
  49. }
  50. }

 总结:

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/66906
推荐阅读
相关标签
  

闽ICP备14008679号