恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

MyEclipse中从零搭建MyBatis开发环境完整实操指南

  • 首页
  • 资讯中心
  • /
  • MyEclipse中从零搭建MyBatis开发环境完整实操指南

相关资讯

回形针思想实验:从AI目标函数到对齐问题的技术启示 2026/10/15 17:01:27
半导体封装测试行业干货与现场实操经验分享 2026/10/15 16:56:27
5根GPIO驱动20颗LED:查理复用原理与STM8实战 2026/10/15 16:56:27

最新资讯

分子动力学模拟全流程解析:从建模、平衡到轨迹分析的关键步骤
IntelliJ IDEA 从入门到高效开发:Java 开发者的完整指南
不依赖框架:用Python和NumPy从零实现AI工程全流程
spx-cd-omni 开源决策模型实战:Jev 范式分层解析与踩坑记录
gradle-8.3-all.zip 快速下载:镜像换源与手动放置加速指南
大数据游戏推荐系统毕业设计:从Hive清洗到Spark协同过滤实现

今日推荐

AI视频生成的时间一致性难题与时空建模演进
基于bbox的PDF文档解析:多栏重排与水印过滤实战
探矿数据进RAG前的清洗全攻略:TXT、Word、PDF、网页四类文档处理实践

本周热门

UE动画修改实战:从资产编辑到重定向与蒙太奇驱动
统计随机数生成器攻击下的KLJN安全密钥交换协议Matlab仿真
政务API安全治理:资产测绘、低代码编排与行标对标实践

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

MyEclipse中从零搭建MyBatis开发环境完整实操指南

发布时间:2026/10/15 17:01:27
MyEclipse中从零搭建MyBatis开发环境完整实操指南 1. 搭建前先想清楚这套环境到底要准备哪些东西做Java开发久了就会发现很多项目不是“最新最好”而是“够用、能跑、有人维护”就行。就拿MyEclipse来说现在大家主力开发工具早换成了IDEA但公司老项目、毕业论文、课程设计里还有大量过程式项目跑在MyEclipse上。而MyBatis作为一款灵活、侵入性低的持久层框架在这些项目里出现频率非常高。我把在MyEclipse里从零搭建MyBatis环境的完整路径整理成一篇实操记录适合刚开始学JDBC和框架、又必须在老版本IDE里交作业或维护旧系统的同学参考。说句实在话环境搭建本身不难但它卡住人的地方特别多版本匹配、jar包缺失、配置文件加载不到、XML和接口绑定不上每一个都能让人白忙一下午。这篇文章不是把配置贴一遍就完事而是把每一步为什么这么做、遇到报错怎么排查都讲清楚你按步骤操作完至少能跑通“查一条用户记录”这种最简单的MyBatis Demo。1.1 MyBatis在MyEclipse里扮演什么角色环境由哪几部分组成想顺利搭环境先得明白MyBatis在这套组合里到底干什么活。可以这样类比数据库是一栋仓库JDBC是仓库门的钥匙MyBatis则是一个仓库管理员。你不必自己拿着钥匙进门翻箱倒柜找货只要告诉管理员“我要哪批货”也就是调用一个Mapper接口方法他就会照着一份写好的清单Mapper XML里的SQL去仓库取货再按你的要求整理成Java对象交给你。MyEclipse不需要参与到这个取货过程它只负责给你提供写代码、放jar包、点运行的工作台。所以一套MyBatis环境的完整组成其实很清楚组成部分典型代表作用IDEMyEclipse编辑代码、管理依赖、运行程序JDKJDK 8编译和运行Java程序的基础数据库MySQL 5.7 / 8.0提供真实数据存储数据库驱动mysql-connector-java让Java代码能连上MySQLMyBatis核心包mybatis-x.x.x.jar提供SqlSessionFactory、Mapper绑定等核心能力日志组件log4j / log4j.properties打印SQL方便调试这六个部分缺一不可。很多人在MyEclipse里折腾半天跑不通要么是JDK和IDE版本不匹配要么是驱动包或核心包没真正加入编译路径要么是配置文件根本没被加载到classpath。下面我把每一部分拆开讲。1.2 环境搭建的核心思路先确认版本再动手环境搭建最忌讳“抄一份配置就开跑跑不起来再去搜报错”。我比较习惯的做法是花十分钟把版本关系在脑子里理一遍磨刀不误砍柴工。先说版本选择。MyBatis 3.5.x要求JDK 8以上而很多老版本的MyEclipse自带编译器、运行环境默认支持的就是JDK 8所以直接选JDK 8最稳别一上来就上JDK 17或21。数据库方面MySQL 8.0和5.7都可以但两者驱动类名和连接URL写法不一样后面会单独说。MyBatis核心包选3.5.x系列即可不用追最新稳定优先。日志组件选log4j 1.2.17就可以别拿log4j 2.x的jar来配log4j.properties那是两套东西。只要版本思路清晰后面每一步就都是在给这个框架填肉。接下来我们一步一步准备具体组件。2. 动手准备JDK、数据库与依赖包一个都不能少2.1 版本匹配安装哪个JDK、在哪查看MyEclipse支持版本先说JDK。打开命令行输入java -version如果是1.8开头说明基础环境没问题。如果已经是17或更高而且你的MyEclipse版本比较老我建议先装一个JDK 8并配置好JAVA_HOME环境变量否则后面可能出现“编译级别不对”“Unsupported major version”这类让人火大的报错。在MyEclipse里确认JDK配置的路径是Window - Preferences - Java - Installed JREs。这里要确保你添加的是一个完整的JDK目录而不是只有运行环境的JRE目录。特别是有些同学电脑上原本装了多个Java版本MyEclipse默认选的可能是某一个不合适的JRE程序编译能过一运行就报错。另一个容易踩的地方是编译器级别。在项目上右键 - Properties - Java Compiler把Compiler compliance level设成1.8和JDK保持一致。版本不匹配时MyBatis初始化经常会报UnsupportedClassVersionError这属于典型的JDK和IDE环境冲突不是你代码写错了。2.2 建库建表先用命令行把数据库跑通数据库这步新手很容易犯一个错在MyEclipse里配数据源连不上就以为是配置写错了折腾半天结果其实是MySQL服务压根没启动或者密码记错了。所以我建议先用命令行把数据库搞定再回IDE里配。打开MySQL命令行执行下面这套建库建表SQLCREATE DATABASE demo CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; USE demo; CREATE TABLE user ( id INT PRIMARY KEY AUTO_INCREMENT, user_name VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL, email VARCHAR(100) ); INSERT INTO user(user_name, password, email) VALUES(zhangsan, 123456, zhangsanexample.com); INSERT INTO user(user_name, password, email) VALUES(lisi, 654321, lisiexample.com);注意建库时指定utf8mb4字符集这是为了后面中文不乱码。我在实际项目中吃过亏数据库默认是latin1后来写入中文全是问号改库改表非常麻烦。这里提前用utf8mb4能省很多事。命令行里能正常执行查询后再用mysql -u root -p验证一下账号密码。确认数据库本身没问题后面连接出错的排查范围就缩小到“连接配置”和“驱动”两块了。2.3 获取MyBatis相关jar包的几种方式环境搭建里很多人卡在jar包获取上。常见方式有三种按推荐程度说第一种手动下载jar包放进项目lib目录。这是老MyEclipse项目最常见的做法也适合新手因为你能清楚看到每个jar的名字和作用出了问题好定位。需要准备的核心jar就两个mybatis-3.5.x.jar和mysql-connector-java-8.0.x.jar。如果你想让SQL打印到控制台再加一个log4j-1.2.17.jar。第二种用Maven管理。如果你的MyEclipse项目已经接入Maven直接在pom.xml里加依赖就行比如MyBatis核心包的坐标dependency groupIdorg.mybatis/groupId artifactIdmybatis/artifactId version3.5.16/version /dependencyMaven会自动把MyBatis的传递依赖也下载下来省心不少。但这个方案有个前提就是MyEclipse里Maven插件和本地仓库配置都正常否则下载失败、依赖冲突反而更麻烦。第三种从现成项目里拷贝jar。如果你手上有一个能跑通的旧项目直接把它lib目录下的jar复制过来也是一种快速验证环境的方式。不过拷过来之后要检查版本避免多个jar版本冲突。我个人的建议是学习环境搭建阶段老老实实用第一种方式。下载地址去MyBatis官网或公共Maven仓库搜索即可下载时注意选bin包而不是源码包。3. 在MyEclipse中创建项目并引入依赖3.1 先选项目类型Java Project还是Web Project新建项目前先想一想你这个MyBatis环境是给谁用的。如果只是学框架、做Demo或者后面要写独立的DAO层测试那新建一个Java Project就够了。Java Project结构简单不需要Tomcat不需要部署到Web容器直接main方法就能跑。如果你的目标是做SSM整合、或者课程设计是一个登录注册网页那应该建Web Project。Web Project多了一层WebContent/WEB-INF/lib的部署目录jar包也可以放这里。我的建议是环境搭建阶段先建Java Project练手因为Web项目引入Tomcat运行时、部署路径、类加载机制这些额外变量出问题时不好判断到底是哪个环节错了。先把MyBatis本身跑通再迁到Web项目里思路会更清晰。在MyEclipse里操作是File - New - Java Project填好项目名一路Next。创建一个干净的实验项目别在旧项目里堆出问题不好排。3.2 手动导入jar包的完整操作路径项目建好后先把之前准备的jar包放进来。我的做法是在项目根目录手动建一个lib文件夹把MyBatis核心包、MySQL驱动、log4j都拖进去。然后回到MyEclipse在项目上右键依次打开Build Path - Configure Build Path - Libraries - Add JARs注意这里要选Add JARs而不是Add External JARs。这两个的区别是Add JARs是从当前项目工作空间里选jar路径是相对路径项目拷到别的电脑后只要整个目录打包带走就还能用Add External JARs是从磁盘任意位置选jar用的是绝对路径一旦移动过jar文件位置路径就失效需要重新配置。还有一个非常常见的坑很多人在Web项目里把jar放进了WEB-INF/lib以为部署运行时能自动发布就完事了。但代码里import org.apache.ibatis.session.SqlSessionFactory的时候编辑器可能不认识这个类因为编译期还没把它加进Build Path。解决办法很简单就算是Web项目也要确保jar出现在Java Build Path里。引入完成后展开项目里Referenced Libraries能看到刚加入的三个jar说明依赖进来了。3.3 规划源码目录让XML能进classpath另一个新手容易忽略的问题是目录结构。MyBatis的XML配置文件非常关键而它在运行时是放在classpath里加载的。MyEclipse里新建的Java Project默认有个src源码目录它编译后的内容会输出到bin目录。只要XML文件放在src下面编译后就会被自动拷贝到bin也就是classpath这样MyBatis才能找到它。一个比较推荐的目录规划是这样MyBatisDemo ├─ src │ ├─ com.demo.pojo │ │ └─ User.java │ ├─ com.demo.mapper │ │ ├─ UserMapper.java │ │ └─ UserMapper.xml │ ├─ com.demo.utils │ │ └─ MyBatisUtil.java │ └─ mybatis-config.xml ├─ lib │ ├─ mybatis-3.5.16.jar │ ├─ mysql-connector-java-8.0.33.jar │ └─ log4j-1.2.17.jar └─ bin看到这个结构你应该就明白一个关键点UserMapper.xml和UserMapper.java放在同一个包路径com.demo.mapper下这样MyBatis按接口全限定名找XML时最方便。mybatis-config.xml放在src根目录加载时直接写mybatis-config.xml就行。如果你的项目是用Maven管理的目录通常会是src/main/java和src/main/resourcesXML要放对地方不然打出来的classpath里没有XML运行时怎么都找不到映射文件。这个问题很多人到后面整合SSH或Spring Boot时会反复遇到。4. 编写核心配置文件从主配置到Mapper映射4.1 主配置文件mybatis-config.xml的正确写法与标签顺序MyBatis需要一个主配置文件定义了数据库连接、类型别名、映射注册等信息。我在MyEclipse里习惯放在src根目录下文件名就叫mybatis-config.xml。先给一份完整示例再逐项说明关键点?xml version1.0 encodingUTF-8 ? !DOCTYPE configuration PUBLIC -//mybatis.org//DTD Config 3.0//EN http://mybatis.org/dtd/mybatis-3-config.dtd configuration !-- 1. 日志实现 -- settings setting namelogImpl valueLOG4J/ setting namemapUnderscoreToCamelCase valuetrue/ /settings !-- 2. 类型别名 -- typeAliases package namecom.demo.pojo/ /typeAliases !-- 3. 环境配置 -- environments defaultdevelopment environment iddevelopment transactionManager typeJDBC/ dataSource typePOOLED property namedriver valuecom.mysql.cj.jdbc.Driver/ property nameurl valuejdbc:mysql://localhost:3306/demo?useUnicodetrueamp;characterEncodingutf8amp;serverTimezoneAsia/Shanghai/ property nameusername valueroot/ property namepassword value你的数据库密码/ /dataSource /environment /environments !-- 4. 注册Mapper -- mappers package namecom.demo.mapper/ /mappers /configuration这段配置里我用了com.mysql.cj.jdbc.Driver这是MySQL 8.0驱动的类名。如果你用的是MySQL 5.x驱动类名是com.mysql.jdbc.Driver别搞混。URL里的serverTimezoneAsia/Shanghai也是MySQL 8.0驱动必须带的参数不然会报时区错误。关于标签顺序我必须强调一下MyBatis的DTD规定settings、typeAliases、environments、mappers这些元素有固定顺序不能乱写。初学者容易把mappers写到environments前面然后启动时报XML解析错误。如果你看到类似Content is not allowed in trailing section或者The content of element type configuration must match十有八九就是标签顺序问题。按上面示例的顺序照抄就不会错。4.2 实体类、数据库表字段与驼峰映射数据库表是user字段有id、user_name、password、email。对应的Java实体类建议叫User放在com.demo.pojo包下package com.demo.pojo; public class User { private Integer id; private String userName; private String password; private String email; public User() { } // 省略 getter/setter实际开发中必须写上 }实体类字段userName对应数据库字段user_name这种“下划线转驼峰”的映射关系在MyBatis里默认是不开启的。所以我在主配置里特意加了setting namemapUnderscoreToCamelCase valuetrue/开启之后MyBatis会自动把数据库的user_name映射到实体类的userName省去手写一堆resultMap。如果不开启你就要手动在XML里写映射关系代码会显得很啰嗦。这个开关我非常推荐开启几乎适用于所有业务项目。4.3 Mapper映射文件的三大要素namespace、id、resultTypeMapper接口和XML映射是MyBatis的核心。先写接口在com.demo.mapper包下新建UserMapper.javapackage com.demo.mapper; import com.demo.pojo.User; import java.util.List; public interface UserMapper { ListUser findAll(); User findById(Integer id); }再在同包下新建UserMapper.xml?xml version1.0 encodingUTF-8 ? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.demo.mapper.UserMapper select idfindAll resultTypecom.demo.pojo.User select id, user_name, password, email from user /select select idfindById resultTypecom.demo.pojo.User select id, user_name, password, email from user where id #{id} /select /mapper这里有三个要素一定要盯住第一namespace必须写成接口的全限定名也就是com.demo.mapper.UserMapper一个字符都不能差第二select标签的id必须和接口方法名一致findAll就对应findAll()第三resultType写的是查询结果每条数据的类型是实体类的全限定名不要写成ListUser。如果你在typeAliases里配了包扫描也可以简写成resultTypeUser。参数占位符用#{}不要用${}。#{}是预处理参数能有效防止SQL注入${}是字符串拼接一般只在动态表名、排序字段等少数场景才用。作为环境搭建阶段统一用#{}是正确习惯。4.4 注册Mapper并开启日志让配置生效写好了接口和XML还要让MyBatis主配置知道它们的存在。mappers标签里有两种常见注册方式。一种用mapper标签写明XML路径mappers mapper resourcecom/demo/mapper/UserMapper.xml/ /mappers另一种用package标签按包扫描要求接口和XML在同一个包下mappers package namecom.demo.mapper/ /mappers我推荐包扫描方式因为它省事以后每加一个Mapper接口和XML都不用回来改主配置。但它有个前提XML必须和接口放在同一目录并且编译之后确实出现在classpath里。在MyEclipse的Java Project里只要XML在src下面这个前提是成立的。配置日志也很重要不然你调试时看不到SQL出了问题只能瞎猜。在lib目录加入log4j-1.2.17.jar后在src根目录新建log4j.propertieslog4j.rootLoggerDEBUG, stdout log4j.appender.stdoutorg.apache.log4j.ConsoleAppender log4j.appender.stdout.TargetSystem.out log4j.appender.stdout.layoutorg.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern%d{yyyy-MM-dd HH:mm:ss} %5p %c{1}:%L - %m%n配合主配置里的setting namelogImpl valueLOG4J/运行程序时控制台就会打印出MyBatis执行的SQL语句、参数和查询结果条数。后面排查问题大部分靠这些日志就够了。5. 跑通第一个查询从SqlSessionFactory到结果集5.1 用工具类封装SqlSessionFactory避免重复构建MyBatis官方建议一个数据库环境对应一个SqlSessionFactory实例因为它构建成本高、线程安全整个应用生命周期里只需要创建一次。我在Demo项目里习惯写一个工具类用静态代码块在类加载时完成初始化package com.demo.utils; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.IOException; import java.io.InputStream; public class MyBatisUtil { private static SqlSessionFactory factory; static { try (InputStream is Resources.getResourceAsStream(mybatis-config.xml)) { factory new SqlSessionFactoryBuilder().build(is); } catch (IOException e) { throw new ExceptionInInitializerError(e); } } public static SqlSession openSession() { return factory.openSession(); } public static SqlSession openSession(boolean autoCommit) { return factory.openSession(autoCommit); } }Resources.getResourceAsStream是MyBatis自带的加载classpath资源的工具不是Java标准库里的。这样写的好处是配置文件的读取和工厂创建只发生一次后续所有Mapper调用都复用同一个SqlSessionFactory。如果工厂创建失败会抛出ExceptionInInitializerError通常意味着主配置文件有语法错误、XML路径不对或者MySQL驱动jar还没加进来。注意看控制台最上面的Caused by那才是真正的错误根因。5.2 写一个简单的Mapper调用Demo验证查询链路环境搭好没搭好用一条查询来验收。我在com.demo.test包下建一个DemoTest写main方法package com.demo.test; import com.demo.mapper.UserMapper; import com.demo.pojo.User; import com.demo.utils.MyBatisUtil; import org.apache.ibatis.session.SqlSession; import java.util.List; public class DemoTest { public static void main(String[] args) { try (SqlSession session MyBatisUtil.openSession()) { UserMapper userMapper session.getMapper(UserMapper.class); ListUser userList userMapper.findAll(); for (User user : userList) { System.out.println(user.getId() - user.getUserName() - user.getEmail()); } } } }这里用了try-with-resourcesSqlSession会自动关闭省得在finally里手动关。别小看这一步SqlSession内部持有数据库连接不关闭就会把连接池的连接耗尽。我遇到过有人在循环里反复创建SqlSession跑到几百条数据就报Too many connections最后发现就是session没关。运行main方法如果控制台输出两行用户数据说明整条链路已经通了MyEclipse认识jar包、MyBatis配置正确、数据库连接成功、Mapper映射绑定无误。如果卡在这一步去对照第6章的排查表。5.3 增删改操作与事务提交为什么数据没变化查询跑通后很多人接着试插入操作然后一脸懵地发现“控制台不报错但数据库里查不到数据”。原因很简单MyBatis默认不会自动提交事务你在openSession()时没传true那么执行完insert之后必须手动session.commit()否则事务回滚数据自然没落库。用前面的工具类插入操作可以这样写public static void testInsert() { try (SqlSession session MyBatisUtil.openSession()) { UserMapper userMapper session.getMapper(UserMapper.class); User user new User(); user.setUserName(wangwu); user.setPassword(123123); user.setEmail(wangwuexample.com); int rows userMapper.insert(user); System.out.println(影响行数 rows); session.commit(); } }如果你不想每次手动提交可以在factory.openSession(true)里传true表示自动提交。但生产项目里我通常不这么干因为自动提交会让事务边界变模糊一旦一个业务方法里有多个写操作中间某个失败就会留下脏数据。初学阶段宁可麻烦一点把commit()写出来顺便理解事务的含义。对应的UserMapper接口里要加方法int insert(User user);XML里加insert idinsert parameterTypecom.demo.pojo.User insert into user(user_name, password, email) values(#{userName}, #{password}, #{email}) /insert注意parameterType可以省略MyBatis会根据接口方法的参数类型自动推断但写上也无妨能帮助初学者理解参数对象和#{}取字段的对应关系。5.4 用日志验证SQL是否真正执行环境搭建是否成功不只看最终结果还得看过程。开启log4j之后正常运行的日志长这样2025-01-08 15:30:01 DEBUG UserMapper:62 - Preparing: select id, user_name, password, email from user 2025-01-08 15:30:01 DEBUG UserMapper:63 - Parameters: 2025-01-08 15:30:01 DEBUG UserMapper:64 - Total: 2看到Preparing和Parameters说明SQL确实发送到了数据库。如果日志里没有任何SQL多半是XML没有被加载或者Mapper绑定失败。如果日志里有SQL但Total: 0则是查询条件与数据不匹配检查SQL的where部分。这里我提供一个调试习惯遇到问题时先看日志SQL和预期是否一致再看异常栈第一行Caused by最后才去翻代码。90%的环境问题看一眼日志就能定位到具体环节。6. 常见问题与排查技巧实录6.1 找不到mybatis-config.xml十有八九是classpath问题报错长这样org.apache.ibatis.binding.BindingException: Error building SqlSession. Cause: java.io.IOException: Could not find resource mybatis-config.xml这个报错的原因只有一个运行时classpath里没有这个文件。MyEclipse里常见两种误操作第一种把XML放在一个普通文件夹里而这个文件夹没有被加入Build Path的Source目录第二种用了Maven结构XML放在src/main/java下但Maven默认只把特定资源拷贝到classpath。解决办法很简单先确认mybatis-config.xml在src或resources目录下然后打开Project - Clean重新编译再看bin目录里有没有这个文件。如果老项目的源码目录不是标准src右键项目 -Build Path - Source把那个存放配置文件的目录添加为Source Folder即可。6.2 Invalid bound statement (not found)命名空间和id是重点这是MyBatis新手最常遇到的经典报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.demo.mapper.UserMapper.findAll这句话的意思是MyBatis找到了UserMapper接口也找到了UserMapper这个类但找不到与它绑定好的SQL语句。排查顺序我建议从三个方面来第一UserMapper.xml的namespace是不是写了接口的全限定名很多时候从网上复制配置namespace还停留在别人的包名一改包名就容易漏改这里。第二XML里的id是不是和接口方法名完全一致大小写、拼写都要核对。第三XML有没有被实际加载可以打开编译输出目录bin看看com/demo/mapper/UserMapper.xml是否存在。如果整个文件都没编译过来前面namespace和id写得再对也没用。另外一个稍隐蔽的场景如果你新增了一个Mapper接口和XML也确认目录结构没问题但底层的mybatis-config.xml里用的是mapper resource.../显式注册忘记把新XML加进去同样会报not found。用package namecom.demo.mapper/包扫描之后这个漏配的问题就基本不会出现了。6.3 数据库连接相关的三类报错驱动类名、账号权限、时区数据库连不上报错千奇百怪但归纳起来主要有三类。第一类ClassNotFoundException: com.mysql.cj.jdbc.Driver。不是驱动jar没加进Build Path就是驱动类名写错了。如果用的是MySQL 5.x驱动类名应该是com.mysql.jdbc.Driver。检查办法展开Referenced Libraries确认mysql-connector-java在列。第二类Access denied for user rootlocalhost (using password: YES)。这是用户名或密码不对或者该用户没有远程访问权限。先在命令行里用同一套账号密码登一遍MySQL如果命令行能进、Java连不上再检查主配置文件里username和password属性名是不是拼错了。我见过有人把username拼成userNameMyBatis不会报配置错误但拼接连接时就是认证失败。第三类MySQL 8.0驱动常见的时区报错The server time zone value Öйú±ê׼ʱ¼ä is unrecognized...这个就是URL里没加serverTimezone参数。把主配置里的URL改成带serverTimezoneAsia/Shanghai的写法即可。同理如果报Unknown database demo说明URL里的库名和实际库名对不上回命令行用SHOW DATABASES;核对一下。6.4 中文乱码数据库、连接URL、IDE三处一起堵乱码问题在中文项目里避不开而且它可能出在三层数据库本身、JDBC连接URL、MyEclipse的工作区编码。只改其中一处往往不够因为三条链路里任何一条不统一中文都会变问号。我的标准做法是建库时用utf8mb4字符集表也显式指定utf8mb4JDBC连接URL里加useUnicodetruecharacterEncodingutf8MyEclipse工作区设置为UTF-8路径是Window - Preferences - General - Workspace - Text file encoding改成UTF-8。这三处都统一之后中文基本不会再出问题。另外MyBatis配置文件里声明的编码也要写成UTF-8比如XML文件头部的?xml version1.0 encodingUTF-8 ?。如果一个XML文件本身是GBK编码文件头却写UTF-8解析阶段就会直接报错。6.5 常见问题速查表对照现象快速定位现象可能原因解决方案Could not find resource mybatis-config.xml配置文件不在classpath将XML放入src或把目录加为Source Folder重新CleanInvalid bound statement (not found)namespace、id不匹配或XML未加载核对全限定名和方法名检查bin目录是否有XMLClassNotFoundException: com.mysql.cj.jdbc.DriverMySQL驱动jar未加入Build Path检查lib目录和Referenced LibrariesAccess denied for user root用户名密码错误命令行验证账号检查配置里的属性名The server time zone value ... is unrecognizedMySQL 8驱动缺serverTimezone参数URL加serverTimezoneAsia/Shanghai控制台没SQL日志log4j未配置或logImpl不对确认log4j jar、log4j.properties、logImplLOG4J中文乱码数据库/URL/IDE编码不一致统一utf8mb4和UTF-8插入后数据库没数据事务未提交手动调用session.commit()这张表基本覆盖了我这些年帮人排查MyEclipseMyBatis环境问题的高频原因。你先按现象对号入座再往对应章节翻细节比漫无目的地改配置高效得多。我在实际排查中发现很多人把问题想复杂了。环境搭建报错多数不是高深难题而是“jar没导进Build Path”“XML没编译进来”“数据库密码写错”“命名空间不一致”这几个基础环节。遇到报错别慌把异常栈从头到尾看一遍尤其是Caused by后面那行基本已经把答案写在脸上了。最后再分享一个小技巧每次改完XML配置文件记得对项目执行一次Project - Clean。MyEclipse有时不会自动刷新编译产物导致你改了配置文件但运行时用的还是旧版本那种“我明明改对了怎么还报错”的情况十有八九就是这个原因。另外尽量别让UserMapper.xml和UserMapper.java分开存放把它们的包路径保持一致可以少踩一半的坑。这套环境搭完之后后面无论是继续加增删改查还是接Spring容器都是在今天的地基上盖楼。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号