JDBC之用IDEA连接SQLServer数据库实用教程

news2024/12/23 0:36:26

目录

前言

一、数据库准备

1.通过SQLServer配置管理器打开TCP/IP协议,设置状态为已启用

2.数据库登录模式设置为身份验证登录(如果已经设置可忽略此步骤)

3.下载SQLServer驱动jar包

二、IDEA准备

1.导入SQLServer驱动jar包

 2.编写测试代码,向SQLServer数据库发动SQL语句请求

 三、连接报错解决方案

四、小结


前言

最近Java学完了JDBC,在连接数据库这件事情上,也找了网上很多博主的文章,期间也遇到了不少问题,最终经历一番曲折解决了数据库连接问题。我也理解新手在接触JDBC时,尤其是在建立数据库连接上非常令人头疼。为此,博主花了晚上一个半小时,精心准备了这篇教程来解答。

一、数据库准备

1.通过SQLServer配置管理器打开TCP/IP协议,设置状态为已启用

按照步骤:此电脑-->管理-->服务和应用程序-->SQLServer配置管理器-->SQLServer网络配置

-->选择打开你本机SQLServer的实例的协议-->TCP/IP协议

注意:如果TCP/IP协议已被禁用则需要右键选中打开,将其设置为已启用状态,否则会影响到后面的数据库连接操作!启用之后要重新启动SQLServer服务:打开SQLServer配置管理器里面的SQLServer服务,右键SqlServerAnalysisServices(黄色图标)重新启动,耐心等待即可完成刚才的配置。

双击IP地址-->IPALL(下拉到最后)-->把TCP端口改为1433(1433为SQLServer数据库的默认端口号,不同的数据库有不同的默认端口号)

2.数据库登录模式设置为身份验证登录(如果已经设置可忽略此步骤)

打开数据库实例-->安全性-->登录名-->右键sa-->属性-->勾选SQLServer身份验证并设置密码

再打开状态,授予连接到数据库引擎和启用登录名

(注:一般默认如此,但是不排除在安装SQLServer数据库时设置了拒绝和禁用因素,所以查看一下确保最后的连接能够成功)

 再右键数据库实例打开服务器属性,打开安全性,配置如下

 下面重启数据库使得上述配置生效即可。

(关闭重开或者右键服务器点击重新启动数据库服务即可)

3.下载SQLServer驱动jar包

已上传百度网盘:

链接:https://pan.baidu.com/s/1oYYEzXJt-22fKssHl4C7Ag 
提取码:o999

(注:里面有三个驱动包,读者根据自己SQLServer版本选择,本人目前用的是SQLServer2012)

二、IDEA准备

1.导入SQLServer驱动jar包

左上角Files-->Project Structure-->Libraries-->点击 + 号-->选择Java-->选择刚刚下载的SQLServer驱动包的路径-->OK

 2.编写测试代码,向SQLServer数据库发动SQL语句请求

以下测试代码建立在数据库中已经建立了名为school的数据库,并且在里面创建一张student表

 测试代码:

import java.sql.*;
public class sql2 {
    public static void main(String args[]){
            Connection con;
            Statement st;
            ResultSet rs;
            String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=school";
            String userName="sa";
            String userPwd="123456";
            String sql="select * from student";
            try {
                con = DriverManager.getConnection(dbURL, userName, userPwd);
                st = con.createStatement();
                rs = st.executeQuery(sql);
                while (rs.next()) {
                    String sno = rs.getString(1);
                    String sname = rs.getString(2);
                    String ssex = rs.getString(3);
                    String sbir = rs.getString(4);
                    String sclass = rs.getString(5);
                    System.out.println("学号:" + sno + "\n姓名:" + sname + "\n性别:" + ssex
                            + "\n出生日期:" + sbir + "\n班号:" + sclass);
                }
                rs.close();
                st.close();
                con.close();
            }catch(SQLException e){
                e.printStackTrace();
                System.out.println("数据库连接失败!!!");
            }

    }
}

运行结果:

能够打印出从数据库中查询到的数据,那么恭喜你,数据库已经连接成功啦!

 三、连接报错解决方案

请借鉴这位博主的文章,挺详细的

2种解决方案

四、小结

        作为程序员,自行解决问题的能力非常重要,即所谓的Debug能力。网上很流行的一句话:“程序员工作三连:查Bug,改Bug,写Bug......”,当然这是调侃,但也很现实。

        凡是遇到问题先不要慌,勇于探索解决它。就像这个数据库连接问题,我一开始搞也遇到了很多问题,历经曲折终于解决了,并成功帮助两个室友成功连接数据库,十分钟左右就搞定了。

        所以只有十分努力,才能看起来毫不费力。诚如斯言!

-----------------------------------------

最后如果你觉得本文对你有帮助的话,别忘记点赞加关注哦。

如果连接仍有问题,可以私信我,有空必回。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/777768.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【UE5 多人联机教程】02-开始游戏菜单控件

目录 步骤 一、完善开始游戏菜单控件 二、控件功能实现 2.1 “开始游戏”按钮切换界面 2.2 “创建房间”、“加入房间”按钮切换界面 2.3 “创建房间”按钮 步骤 一、完善开始游戏菜单控件 打开“UMG_Main” 首先在控件切换器外层包裹一个画布面板 然后调整控件切换器全…

Docker-volume【基础使用】

目录 【1】将本地的目录挂载到容器中 【2】volume卷,持久化 【3】volume数据共享 【4】volume持久化的作用 【5】volume - 随机卷的使用方式 【6】 启动nginx容器访问80出现HELLO,访问81出现WORLD 【1】将本地的目录挂载到容器中 1、容器的数据目录…

第112天:免杀对抗-加载器分离无文件落地图片隐写SOCK管道参数协议化

知识点 #知识点: 1、无文件落地&分离拆分-将shellcode从文本中提取-file 2、无文件落地&分离拆分-将shellcode与加载器分离-argv 3、无文件落地&分离拆分-将shellcode远程协议加载-http 4、无文件落地&分离拆分-将shellcode通过管道传输-socket 5、…

设计模式与技术场景面试题详解

工厂方法模式 简单工厂模式 工厂方法模式 抽象工厂模式 策略模式 工厂模式策略模式(登录案例) 责任链模式 技术场景 单点登录怎么实现 权限认证是如何实现的 上传数据的安全性你们怎么控制 你负责的项目遇到了哪些棘手的问题?怎么解决的 你们…

Vue系列第二篇:初识Vue项目

上一篇我搭建了Vue开发环境,创建了一个demo项目,借助nginx将Vue项目编译部署。这一篇来看一下Vue项目的结构。如下图所示: 我就创建一个空项目,结果Vue脚手架就帮我自动生成了这么多文件,看着挺吓人的。不用怕&#xf…

第十一章、【Linux】正则表达式与文件格式化处理

正则表达式 (Regular Expression, RE, 或称为常规表达式)是通过一些特殊字符的排列,用以“搜寻/取代/删除”一列或多列文字字串, 简单的说,正则表达式就是用在字串的处理上面的一项“表示式”。正则表达式并不是一个工…

「网络编程」传输层协议_ TCP协议学习_及原理深入理解(一)[万字详解]

「前言」文章内容大致是传输层协议,TCP协议讲解,续上篇UDP协议。 「归属专栏」网络编程 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 一、TCP协议介绍二、TCP协议2.1 解包与分用2.2 谈谈可靠性2.3 TCP的工作模式2.4 确认应答(ACK)机制2.5 16位序号与…

【基于CentOS 7 的SSH服务】

目录 一、概念 二、特点 三、身份验证机制 1.密码验证 2.密钥对验证 四、验证过程 五、加密机制 1.单向加密 2.对称加密 3.非对称加密 六、基本参数 1.服务名 2.端口号 3.配置文件 3.1 服务器端 3.2 客户端 4.配置文件解析 4.1 /etc/ssh/sshd_config 4.2 /e…

机器学习 day29(高偏差、高方差,参数d对模型的影响)

1. 高偏差、高方差、拟合能力、泛化能力 偏差和方差分别代表拟合能力和泛化能力若给左图数据集拟合一阶多项式(d取1),则该模型有很高的偏差(欠拟合)。因为它对训练集和验证集的表现均不好,所以Jtrain很高…

使用STM32 再实现循迹/跟随/摇头避障小车

循迹小车 硬件介绍和接线 TCRT5000 使用方法和原理见89C52时期的介绍。 循迹小车需要使用两个TCRT5000,左侧的DO接到PB3;右侧的DO接到PB4 CubeMX 1. 在上节的基础上进行修改 配置两个传感器的GPIO 2. 惯例配置更新代码 Keil 注意,如果…

Linux 学习记录54(ARM篇)

Linux 学习记录54(ARM篇) 本文目录 Linux 学习记录54(ARM篇)一、框图分析1. 芯片手册内部框图2. 操作GPIO过程 二、通过汇编完成GPIO操作1. 常用的汇编指令2. GPIO初始化流程3. 查找相关寄存器(1. RCC寄存器(2. GPIO寄存器>1. 模式配置寄存器>2. 输出模式配置寄存器>3…

【云原生】Prometheus之部署 Alertmanager 发送告警

前言 1. Alertmanager 发送告警的介绍 Prometheus 对指标的收集、存储与告警能力分属于 Prometheus Server 和 AlertManager 两个独立的组件,前者仅负责定义告警规则生成告警通知, 具体的告警操作则由后者完成。 Alertmanager 负责处理由 Prometheus…

wxchart 小程序 线条图不显示y轴的网格线 (分割线)

如下图:项目需求不显示包括x轴的6条灰色分割线。 分析: 看了一下源码已经写死了是5条分割线,加一条x轴刻度线。没给公开配置方法。 解决方案: 既然没有配置项目,可以转变思路,把这些线条配置成白色&…

一文掌握如何前后端分离?

随着科技的进步和发展,低代码开发产品拥有广阔的市场前景。前后端分离似乎早已经是发展趋势了,因为做好前后端分离对于前后端的工程师而言是非常有利的,这样也有利于提升办公协作效率。那么,如何前后端分离?分别都有哪…

CentOS 安装Mysql8

1.检查是否已经安装mysql,停止mysql服务,删除mysql ps -ef | grep -i mysql systemctl stop mysqld rpm -e mysql 2.配置仓库 更新秘钥 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 安装mysql8的yum源 rpm -Uvh https://dev.mysql.…

基于linux下的高并发服务器开发(第二章)- 2.17 内存映射(1)

11 / 内存映射相关系统调用 #include <sys/mman.h> void* mmap(void *addr, size_t length, int prot, int flags,int fd, off_t offset); - 功能&#xff1a;将一个文件或者设备的数据映射到内存中 - 参数&#xff1a; - void* addr:NULL,由内核指定 - length:要映射的…

【OpenCV】常见问题及解决办法

文章目录 0 前言1 中文乱码问题2 非法路径问题 0 前言 本篇博客主要是总结OpenCV使用过程中遇到的一些问题&#xff0c;以及对应的解决办法&#xff0c;这里重点是关注OpenCV&#xff0c;既有基于C的&#xff0c;也有基于Python的&#xff0c;比较全面&#xff0c;而且也会随着…

【Python】数据分析+数据挖掘——变量列的相关操作

前言 在Python和Pandas中&#xff0c;变量列操作指的是对DataFrame中的列进行操作&#xff0c;包括但不限于选择列、重命名列、添加新列、删除列、修改列数据等操作。这些操作可以帮助我们处理数据、分析数据和进行特征工程等。 变量列的相关操作 概述 下面将会列出一些基本…

对github项目提PR 请求的保姆级教程——以修改casdoor项目的swagger文档为例,干货满满

Github入门教程可以在腾讯犀牛鸟开源人才培养计划里面学习。 PR简介 PR(Pull Request) 即拉取请求,是 GitHub 上进行协同开发的一种非常常用的方式。 它的基本流程是&#xff1a; 开发者fork一个开源项目的代码库,将其克隆到本地。在本地对代码进行修改、添加新功能等。将本…

基于ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升环境、生态、水文、土地、土壤、农业、大气等领域的数据分析能力与项目科研水平教程

详情点击链接&#xff1a;基于ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升环境、生态、水文、土地、土壤、农业、大气等领域的数据分析能力与项目科研水平 一&#xff0c;空间数据获取与制图 1.1 软件安装与应用 1.2 空间数据 1.3海量空间数据下载 1.4 ArcGIS软件快…