news 2026/6/25 20:19:52

web7(2)mybatis入门

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
web7(2)mybatis入门

完整错误总结与改正

这是一次非常典型且完整的开发排错过程。系统性地总结一下过程中遇到的问题和解决方案:


一、环境与配置类错误

错误1:在错误的目录执行 Maven 命令

现象:

text

[ERROR] The goal you specified requires a project to execute but there is no POM in this directory

原因:D:\webweb目录下执行命令,但pom.xmlD:\webweb\mybatis01\mybatis01中。

改正:切换到包含pom.xml的项目根目录:

bash

cd D:\webweb\mybatis01\mybatis01

错误2:数据库类型不匹配

现象:使用 SSMS(SQL Server 管理工具)连接,但项目配置的是 MySQL 驱动。

原因:application.properties中配置的是 MySQL 驱动,但实际使用的是 SQL Server。

改正:

  • 确认数据库类型(SQL Server)

  • 修改application.properties中的驱动和 URL

  • pom.xml中添加 SQL Server 驱动依赖


错误3:SQL Server TCP/IP 协议未启用

现象:

text

local_tcp_port 返回 NULL Failed to obtain JDBC Connection

原因:SQL Server 默认只启用了共享内存协议,没有启用 TCP/IP,Java 应用无法连接。

改正:

  1. 打开 SQL Server 配置管理器(SQLServerManager11.msc

  2. 启用 TCP/IP 协议

  3. 配置端口为1433

  4. 重启 SQL Server 服务


错误4:防火墙阻止端口 1433

现象:连接超时或拒绝连接

改正:在 Windows 防火墙中添加入站规则,允许 TCP 端口 1433。


错误5:SQL Server 驱动未加载

现象:

text

Cannot load driver class: com.microsoft.sqlserver.jdbc.SQLServerDriver

原因:pom.xml中没有添加 SQL Server 驱动依赖,或依赖未下载成功。

改正:

xml

<dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <version>9.4.1.jre16</version> <scope>runtime</scope> </dependency>

然后执行mvn clean compile -U强制更新依赖。


错误6:application.properties 配置不正确

现象:各种连接失败

改正后的正确配置:

properties

spring.application.name=mybatis03 spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver spring.datasource.url=jdbc:sqlserver://127.0.0.1:1433;databaseName=2026shangke;encrypt=false;trustServerCertificate=false; spring.datasource.username=sa spring.datasource.password=你的密码 mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

关键点:

  • encrypt=false(SQL Server 2012 不支持加密)

  • 使用127.0.0.1而不是localhost

  • 使用trustServerCertificate=false


二、SQL 语法类错误

错误7:数据库名以数字开头导致语法错误

现象:

text

消息 102,级别 15,状态 1,第 1 行 "2026"附近有语法错误。

原因:SQL Server 中,以数字开头的数据库名需要用方括号括起来。

改正:

sql

错误 USE 2026shangke; 正确 USE [2026shangke];

错误8:表名user是保留关键字

现象:

text

关键字 'user' 附近有语法错误。

原因:USER是 SQL Server 的保留关键字,作为表名时需要转义。

改正:

sql

错误 SELECT * FROM user 正确 SELECT * FROM [user]

错误9:使用了 MySQL 特有函数

现象:

text

'CONCAT' 不是可识别的内置函数名称

原因:SQL Server 使用+拼接字符串,而不是CONCAT()

改正:

sql

MySQL 语法 LIKE CONCAT('%', #{name}, '%') SQL Server 语法 LIKE '%' + #{name} + '%'

错误10:表不存在

现象:

text

对象名 'user' 无效。

原因:没有在 SQL Server 中创建[user]表。

改正:在 SSMS 中执行建表 SQL:

sql

USE [2026shangke]; CREATE TABLE [user] ( id INT IDENTITY(1,1) PRIMARY KEY, username VARCHAR(20) NOT NULL UNIQUE, password VARCHAR(32) NOT NULL DEFAULT '123456', email VARCHAR(50), phone VARCHAR(20), status TINYINT NOT NULL DEFAULT 1, create_time DATETIME NOT NULL, update_time DATETIME NOT NULL );

三、代码类错误

错误11:UserMapper 中部分 SQL 未修改

现象:listAll()能工作,但其他方法报错。

原因:只修改了listAll()中的[user],其他方法还是user

改正:将所有user改为[user]


错误12:VSCode 测试按钮不显示

现象:右键没有 "Run Test" 选项,方法左侧没有 ▶ 按钮。

原因:

  • 缺少 VSCode 测试插件

  • Maven 未编译

  • 文件未保存

改正:

  1. 安装Test Runner for Java插件

  2. 执行mvn clean compile

  3. 保存所有文件(Ctrl + S

  4. 重新加载 VSCode 窗口


四、错误原因分类统计

错误类型数量占比
数据库配置(驱动、端口、协议)433%
SQL 语法(关键字、函数、表名)433%
Maven/环境(目录、依赖)217%
VSCode/插件217%
合计12100%

五、核心经验教训

1️⃣ 确认数据库类型

  • MySQLSQL Server的驱动、连接 URL、SQL 语法都不同

  • 第一步就要确认项目配置和实际数据库一致

2️⃣ 保留关键字需要转义

  • 在 SQL Server 中,usertableselect等都是保留关键字

  • 作为表名/列名时要用[]括起来

3️⃣ 数据库服务需要正确配置

  • 确保 TCP/IP 协议已启用

  • 确保防火墙允许对应端口

  • 确保使用正确的端口号

4️⃣ Maven 依赖管理

  • 添加新依赖后执行mvn clean compile -U

  • 确认依赖已正确下载到本地仓库

5️⃣ 善用错误日志

  • 查看target/surefire-reports/目录下的测试报告

  • 使用-e-X参数获取详细错误信息


六、成功后的正确配置总结

application.properties

properties

​ spring.application.name=mybatis03 spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver spring.datasource.url=jdbc:sqlserver://127.0.0.1:1433;databaseName=2026shangke;encrypt=false;trustServerCertificate=false; spring.datasource.username=sa spring.datasource.password=你的密码 mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl ​

pom.xml 关键依赖

xml

<!-- SQL Server 驱动 --> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <version>9.4.1.jre16</version> <scope>runtime</scope> </dependency>

SQL 语法要点

sql

--SQL Server 正确语法 USE [2026shangke]; SELECT * FROM [user]; INSERT INTO [user](username) VALUES ('admin'); UPDATE [user] SET username = 'admin2' WHERE id = 1; DELETE FROM [user] WHERE id = 1; LIKE '%' + #{keyword} + '%'

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/25 20:14:43

Kinetis Design Studio开发环境搭建与实战指南

1. 从零开始&#xff1a;为什么选择Kinetis Design Studio&#xff1f;如果你正在或即将使用飞思卡尔&#xff08;现恩智浦&#xff09;的Kinetis系列Cortex-M微控制器&#xff0c;那么搭建一个顺手、高效的开发环境就是你的第一道坎。市面上IDE选择不少&#xff0c;从Keil、IA…

作者头像 李华
网站建设 2026/6/25 20:13:06

【计算机毕业设计案例】基于 Python 的个性化饮食健康辅助系统设计与实现 基于 Python 的膳食知识库管理健康系统(程序+文档+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/6/25 20:06:00

GEO工具“既当裁判又当运动员”,谁来保证数据真实?

GEO工具“既当裁判又当运动员”&#xff0c;谁来保证数据真实&#xff1f;引言2026年&#xff0c;生成式AI已全面重塑用户获取信息的路径。传统搜索引擎的蓝色链接退居二线&#xff0c;ChatGPT、DeepSeek、豆包、Kimi等大模型成了新一代“信息入口”。品牌能否被AI主动推荐、正…

作者头像 李华
网站建设 2026/6/25 20:00:32

SpringBoot与数据库集成:实现高效数据访问

在现代软件开发中&#xff0c;高效的数据访问是构建高性能应用的关键。Spring Boot作为当前主流的Java开发框架&#xff0c;凭借其“约定优于配置”的理念和强大的生态系统&#xff0c;极大地简化了Spring应用的搭建与开发。本文将深入探讨如何利用Spring Boot与数据库集成&…

作者头像 李华
网站建设 2026/6/25 19:59:19

lxml:Python 处理 XML 和 HTML 的终极选择

文章目录lxml&#xff1a;Python 处理 XML 和 HTML 的终极选择1、 这玩意儿是干嘛的2、 为什么要用它3、 核心功能特性4、 安装使用教程5、 适合哪些人用6、 项目背后的故事lxml&#xff1a;Python 处理 XML 和 HTML 的终极选择 lxml 在 GitHub 上已经拿到 3,035 Star 了。 这…

作者头像 李华
网站建设 2026/6/25 19:58:19

GetQzonehistory:为你的QQ空间记忆打造专属时光保险箱

GetQzonehistory&#xff1a;为你的QQ空间记忆打造专属时光保险箱 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 在这个数字记忆如流沙般消逝的时代&#xff0c;你是否担心那些珍贵的Q…

作者头像 李华