web7(2)mybatis入门

发布时间:2026/6/25 20:20:13
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.xml在D:\webweb\mybatis01\mybatis01中。改正切换到包含pom.xml的项目根目录bashcd D:\webweb\mybatis01\mybatis01错误2数据库类型不匹配现象使用 SSMSSQL Server 管理工具连接但项目配置的是 MySQL 驱动。原因application.properties中配置的是 MySQL 驱动但实际使用的是 SQL Server。改正确认数据库类型SQL Server修改application.properties中的驱动和 URL在pom.xml中添加 SQL Server 驱动依赖错误3SQL Server TCP/IP 协议未启用现象textlocal_tcp_port 返回 NULL Failed to obtain JDBC Connection原因SQL Server 默认只启用了共享内存协议没有启用 TCP/IPJava 应用无法连接。改正打开 SQL Server 配置管理器SQLServerManager11.msc启用 TCP/IP 协议配置端口为1433重启 SQL Server 服务错误4防火墙阻止端口 1433现象连接超时或拒绝连接改正在 Windows 防火墙中添加入站规则允许 TCP 端口 1433。错误5SQL Server 驱动未加载现象textCannot load driver class: com.microsoft.sqlserver.jdbc.SQLServerDriver原因pom.xml中没有添加 SQL Server 驱动依赖或依赖未下载成功。改正xmldependency groupIdcom.microsoft.sqlserver/groupId artifactIdmssql-jdbc/artifactId version9.4.1.jre16/version scoperuntime/scope /dependency然后执行mvn clean compile -U强制更新依赖。错误6application.properties 配置不正确现象各种连接失败改正后的正确配置propertiesspring.application.namemybatis03 spring.datasource.driver-class-namecom.microsoft.sqlserver.jdbc.SQLServerDriver spring.datasource.urljdbc:sqlserver://127.0.0.1:1433;databaseName2026shangke;encryptfalse;trustServerCertificatefalse; spring.datasource.usernamesa spring.datasource.password你的密码 mybatis.configuration.log-implorg.apache.ibatis.logging.stdout.StdOutImpl关键点encryptfalseSQL Server 2012 不支持加密使用127.0.0.1而不是localhost使用trustServerCertificatefalse二、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 特有函数现象textCONCAT 不是可识别的内置函数名称原因SQL Server 使用拼接字符串而不是CONCAT()。改正sqlMySQL 语法 LIKE CONCAT(%, #{name}, %) SQL Server 语法 LIKE % #{name} %错误10表不存在现象text对象名 user 无效。原因没有在 SQL Server 中创建[user]表。改正在 SSMS 中执行建表 SQLsqlUSE [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 );三、代码类错误错误11UserMapper 中部分 SQL 未修改现象listAll()能工作但其他方法报错。原因只修改了listAll()中的[user]其他方法还是user。改正将所有user改为[user]。错误12VSCode 测试按钮不显示现象右键没有 Run Test 选项方法左侧没有 ▶ 按钮。原因缺少 VSCode 测试插件Maven 未编译文件未保存改正安装Test Runner for Java插件执行mvn clean compile保存所有文件Ctrl S重新加载 VSCode 窗口四、错误原因分类统计错误类型数量占比数据库配置驱动、端口、协议433%SQL 语法关键字、函数、表名433%Maven/环境目录、依赖217%VSCode/插件217%合计12100%五、核心经验教训1️⃣ 确认数据库类型MySQL和SQL Server的驱动、连接 URL、SQL 语法都不同第一步就要确认项目配置和实际数据库一致2️⃣ 保留关键字需要转义在 SQL Server 中user、table、select等都是保留关键字作为表名/列名时要用[]括起来3️⃣ 数据库服务需要正确配置确保 TCP/IP 协议已启用确保防火墙允许对应端口确保使用正确的端口号4️⃣ Maven 依赖管理添加新依赖后执行mvn clean compile -U确认依赖已正确下载到本地仓库5️⃣ 善用错误日志查看target/surefire-reports/目录下的测试报告使用-e或-X参数获取详细错误信息六、成功后的正确配置总结application.propertiesproperties​ spring.application.namemybatis03 spring.datasource.driver-class-namecom.microsoft.sqlserver.jdbc.SQLServerDriver spring.datasource.urljdbc:sqlserver://127.0.0.1:1433;databaseName2026shangke;encryptfalse;trustServerCertificatefalse; spring.datasource.usernamesa spring.datasource.password你的密码 mybatis.configuration.log-implorg.apache.ibatis.logging.stdout.StdOutImpl ​pom.xml 关键依赖xml!-- SQL Server 驱动 -- dependency groupIdcom.microsoft.sqlserver/groupId artifactIdmssql-jdbc/artifactId version9.4.1.jre16/version scoperuntime/scope /dependencySQL 语法要点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} %