MyBatis框架学习过程中所遇到的问题

文章目录

    • 一、学习MyBatis初期
    • 二、深入学习MyBatis后
    • 三、学习MyBatis过程中难点问题
      • 运行异常1:
      • 运行异常2:
      • 运行异常3:
      • 运行异常4:
      • 运行异常5:


例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


一、学习MyBatis初期

学习过程遇见的问题1: 在刚开始学习MyBatis的过程中,于我而言,第一个较为头疼的问题就是:难理解。因为在学习了JDBC后,我很难理解为什么要这么麻烦的去配置这些映射文件、接口以及实体类以及名字保持一致这些,感觉很麻烦。我甚至不理解这是要干什么。刚开始真的不懂MyBatis的好。(但它是真的香)
解决方案: 这个解决方案就是,不要放弃学习,持续学习,会觉得MyBatis真香,真的很好用。MyBatis 内部封装了 JDBC,简化了加载驱动、创建连接、创建 statement 等繁杂的过程,这样对我们来说只需要关注 SQL 语句本身。
在学习任何一个技术或语言时,初接触时出现懵逼和不理解都是正常的,但学习到一定程度时,所有在学习初期的困惑都会迎刃而解,这个过程也是会提升学习的幸福感的。

二、深入学习MyBatis后

学习过程遇见的问题2: 对MyBatis有了一定的了解后,在学习过程中,避免不了的就是会出现各种异常,但由于不够仔细,或者配置映射文件时配置少了,多了、忘了。导致在学习过程中,代码频繁出现异常,但也正是因为这些异常见多了,慢慢学会了看异常,找错误修改最后出结果。
下面给大家看一下我在学习过程中遇到的一小部分异常:

三、学习MyBatis过程中难点问题

下面给大家列举一些在学习MyBatis过程中我认为的难点重点问题

关联查询、resultMap的配置、批处理添加数据、对动态Sql的理解+熟练应用

运行异常1:

MyBatis框架学习过程中所遇到的问题_第1张图片
这个是一个最不应该的错误,通过MapperRegistery可以看出就是没有将我们的映射器配置在主映射文件下。
解决方法:在主映射文件下,配置映射器有三种方式,分别是通过关键字class、 resource、以及package包。package的范围更广也更通用。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

运行异常2:

MyBatis框架学习过程中所遇到的问题_第2张图片
这个从绿色划线部分和错误提示的行数我们也能看出来,result Map Collection value 大概错误就出在我们用来保存查询结果的位置是否有马虎和遗忘问题。

运行异常3:

MyBatis框架学习过程中所遇到的问题_第3张图片
在这里插入图片描述
通过日志文件的显示,我们可以知道,配置没有问题,通过错误的类型和提示,我们很快就能发现是因为马虎sql语句里出现了错误,在异常的提示里,已经告诉了我们那里错了。

运行异常4:

在这里插入图片描述
通过黄色划线部分,根据提示我们可以知道是哪个字段哪个类里出现了错误。

运行异常5:

在这里插入图片描述

MyBatis框架学习过程中所遇到的问题_第4张图片
在这里插入图片描述
这个是我在使用批处理添加数据时遇到的问题,主要原因是因为字段的类型没有正确处理。
这是我的表结构
MyBatis框架学习过程中所遇到的问题_第5张图片
这是我需要批量添加的数据
MyBatis框架学习过程中所遇到的问题_第6张图片
这个是该类型的实体类,他的实体类里的部门类型关联着另一张表,从而得到部门编号。
MyBatis框架学习过程中所遇到的问题_第7张图片
由于没有对类型进行处理,所以不能正常添加。同时,也需要注意,我们添加的数据中是没有主键值的,我们需要检查该表的主键是否设置了自动增长类型,这样才能保证数据和主键的正常添加。

最后在这里,我们写下一个在MyBatis中的一个小问题
#{}和¥{}具体区别点总结如下:

  • 使用#{}会产生1个?占位符,并使用PreparedStatement进行处理。而${}则进行的是字符串的拼接。
    1. 使用#{}可以预防SQL注入,而${}无法防止SQL注入。
    1. 一般用于在 S Q L 中拼接数据库表名、视图或关键字,例如动态使用 o r d e r b y 进行排序时,就需要使用 {}一般用于在SQL中拼接数据库表名、视图或关键字,例如动态使用order by 进行排序时,就需要使用 一般用于在SQL中拼接数据库表名、视图或关键字,例如动态使用orderby进行排序时,就需要使用{}来拼接排序字段名称和排序规则。

最后MyBatis真的很灵活简单方便,总结一下MyBatis的优点

  • 简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar包+配置几个sql映射文件就可以了,易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。
  • 灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。
  • 解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。
  • 提供xml标签,支持编写动态sql。

你可能感兴趣的:(mybatis,学习,java)