java连接SQL Server数据库的超详细教程
作者:qq_53170849 发布时间:2023-04-05 21:46:22
前言
最近数据库大作业要连接数据库,看了很多博客文章终于连接好了,但是没有看到一篇博客是能直接连接完成的,所以在这记录一下希望能帮助大家
sql server 版本:2008;
jdk版本:11
java编译器:eclipse
sqlserver,jdk以及eclipse的安装的就不说了,可以参考其它博客
一、sqlserver的配置
1、Tcp\Ip 配置
首先,在开始搜索框中搜索 sql server配置管理器,如下图,我们打开它(如果没有这个软件或者打不开,那说明当初安装sql server没安装完全,卸载重装一次,找不到不一定就是没有,百度一下怎么找,真找不到就是没安装!)
如果TCP/ip是禁用状态,一定要改为开启!
打开之后依次点击SQL SERVER 网络配置->MSSQLSERVER 协议->Tcp\Ip,出现下图界面。
随后划到最下面,将 IPALL的Tcp端口 改为1433,然后点击确定。
2、sql server身份验证配置
首先打开sql server,先使用window身份验证连接服务器。
然后右键服务器,点击属性
随后选择安全性,将windows身份验证改为sql server和windows身份验证模式。点击确定即可。
随后依次展开 服务器->安全性->登录名->sa , sa是默认的用户,我们要为其设置一个密码,
输入密码后,再点击左边的 状态,然后将权限设置为 授予和启用,点击确定退出即可。
随后,也是很重要的一步,打开刚刚的sql server配置管理器,重启sql server服务。
重启后,打开sql server,选择sql 身份验证,用户名为sa,密码就是刚刚你输入的密码,点击登录,如果不能登录进去,可能是密码搞错了,或者你没重启sql服务。
二、jdbc下载及配置
https://go.microsoft.com/fwlink/?linkid=2155948,这个是9.2版本的jdbc,是目前的最新版,建议下载最新版,因为只有最新版的jdbc是兼容最新版的jdk,如果你jdbc版本低,jdk版本高,就可能用不了。
下载好了解压到一个你想解压的文件路径,我是直接放在了c盘,这个要用winzip解压,没有就下载一个就好。
我是直接放在c盘,我也建议大家放在简单的位置,因为后面要配置环境变量,文件路径不能太长,或者有空格也可能会引发错误。
解压好了打开,应该有三个版本,根据你的jdk版本选择合适的,我是jdk11,就选那个jre11的,然后把其他俩都删了。
然后打开分别打开auth,xa这俩文件夹,你的java是X86 或者X64的就选择哪个,我的是64的。
然后把这个文件复制一下,粘贴到你的java 下面的bin里面(不知道java文件夹在哪的搜索一下就好)
然后xa文件下的那个文件也像上面一样复制到BIN 里面,我就不演示了。
配置环境
打开设置,搜索 高级系统设置,然后点开环境变量,
然后在下面的系统变量的 CLASSPATH中将 .;C:\sqljdbc_9.2\chs\mssql-jdbc-9.2.1.jre11.jar 这句话加进去,注意不要复制我的,根据你jdbc文件路径和版本名称进行相应更改,注意前面有个点和分号!
然后点击确定,确定就行。
path路径这里如果你下载是其它版本的jdbc可以看微软官方给的教程:https://docs.microsoft.com/zh-cn/sql/connect/jdbc/using-the-jdbc-driver?view=sql-server-ver15
三、java配置及代码
首先先创建一个java项目,这个应该都会吧我就不演示了,然后创建好了,右键你刚刚创的这个项目,点击build path,然后configure buildpath,我的是英文的,中文的话你就对着找就好。
然后出现这个界面,在Libraries分支下面,点击classpath,点击右边的add External JARs,实测没有classpath也没事,直接添加就好!
然后选择你jdbc的文件路径,选择jdbc,然后点击,打开。
然后点击 apply and close就好。
然后就是java代码了,我的代码如下:
代码前面要加 import java.sql.*
String url = "jdbc:sqlserver://10.40.146.243:1433;databaseName=学生管理;integratedSecurity=false;";
Connection conn;
try {
conn = DriverManager.getConnection(url,"sa","123456");
Statement stat = conn.createStatement();//创建一个 Statement 对象来将 SQL 语句发送到数据库。
ResultSet resultSet=stat.executeQuery("select * from 学生");
while (resultSet.next()) {
System.out.println(resultSet.getString("姓名"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}// 连接数据库cpp
url每个人都不一样,前面的jdbc:sqlserver://是一样的,后面紧跟的是你的ipv4地址,ipv4通过 开始栏搜索运行->打开运行->输入cmd->敲回车->然后在这个界面输入ipconfig,就有你的ipv4地址了。
找到ipv4地址后就复制过来,后面加上:1433,其它跟我一样jdbc:sqlserver://10.40.146.243:1433;databaseName=学生管理; databasename是你自己想访问的数据库的名字。
conn = DriverManager.getConnection(url,“sa”,“123456”);
sa就是你的用户名,123456的位置就是你的账户密码。
ResultSet resultSet=stat.executeQuery(“select * from 学生”);
这个里面是你想执行的sql语句,先来个简单的测试一下通了没。
System.out.println(resultSet.getString(“姓名”));
这里姓名这个位置是你想看到的列名。
然后run就好了。
总结
来源:https://blog.csdn.net/qq_53170849/article/details/117594704


猜你喜欢
- package com.yswc.dao.sign;import java.io.BufferedReader;import java.io
- 对于导航组件的使用方式不是本文的重点,具体使用可以参考官方文档,导航组件框架是通过f
- 1、前期准备需要在Manifest中添加相关权限<uses-permission android:name="android
- 一.解析概念StringUtils概念StringUtils 方法的操作对象是 Java.lang.String 类型的对象,是 JDK 提
- C#byte数组与Image的相互转换实例代码功能需求:1、把一张图片(png bmp jpeg bmp gif)转换为byte数组存放到数
- 延迟加载1 使用延迟加载意义在进行数据查询时,为了提高数据库查询性能,尽量使用单表查询,因为单表查询比多表关联查询速度要快。如果查询单表就可
- 本文实例讲述了C#实现基于Base64的加密解密类。分享给大家供大家参考。具体如下:这个C#类是一个基于Base64的加密和解密类,用户可以
- 一、线程池使用场景•单个任务处理时间短•将需处理的任务数量大二、使用Java线程池好处1、使用new Thread()创建线程的弊端:•每次
- idea的前后跳转箭头没有像eclipse一样显示在导航栏,很多时候找不到,记住快捷键:ctrl+alt+ 向左箭头或者向右箭头即可跳转。补
- 在Android开发中我们很多地方都用到了方法的回调,回调就是把方法的定义和功能导入实现分开的一种机制,目的是为了解耦他的本质是基于观察者设
- 本文实例为大家分享了C#实现简单串口通讯的具体代码,供大家参考,具体内容如下参数设置界面代码:using System;using Syst
- 前言:mongodb是一个基于分布式文件存储的开源数据库系统。mongodb与我们平常使用的mysql的区别: 1.
- 前言:小编引入的图片和文字描述都是来自于尚硅谷的视频讲解,在此感谢尚硅谷的老师,同时也结合 seata文档官方文档进行整合项目地址(gite
- 本文实例为大家分享了java封装前端查询条件的具体代码,供大家参考,具体内容如下import hengyi.oa.mobile.except
- 前言本篇文章将教你作为一个.NET程序员如何快入门Spring Boot。你不需要用Eclipse,也不需要用IDEA。已经习惯了VS,其他
- 在上个月的对C#开发微信门户及应用做了介绍,写过了几篇的随笔进行分享,由于时间关系,间隔了一段时间没有继续写这个系列的博客了,并不是对这个方
- 前言Spring 事务注解 @Transactional 本来可以保证原子性,如果事务内有报错的话,整个事务可以保证回滚,但是加上try c
- ThreadLocal简介变量值的共享可以使用public static的形式,所有线程都使用同一个变量,如果想实现每一个线程都有自己的共享
- 本文实例讲述了android编程实现添加文本内容到sqlite表中的方法。分享给大家供大家参考,具体如下:第一步: 创建表CREATE TA
- 在上一篇文章中,我们之前对BarChart.lerp的定义并不是高效的,我们正在创建的Bar实例,仅作为Bar.lerp的参数给出,并且针对