mybatis之配置优化and映射器~

简介: mybatis之配置优化and映射器~

环境配置:

mybatis可以配置成适应多种环境,但是要记住,尽管可以配置多个环境,但每个SqlSessionFactory实例只能选择一种环境。


虽然,MyBatis 中有两种类型的事务管理器:type=("[JDBC|MANAGED]")

但是mybatis默认的事务管理器就是JDBC,连接池:POOLED


属性:

我们可以通过properties属性来实现引用配置文件,这些属性都是可外部配置且可动态替换的,既可以在典型的java属性文件中配置,也可以通过properties元素的子元素来传递[db.properties]

引入外部配置文件:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=UTF-8
user=root
password=xxx

在xml文件中,所有的标签都规定了其顺序,当我们把上述的properties标签,放在错误的位置时,就会报错:

mybatis-config.xml文件:

引入外部的配置文件:

注意!注意!


如果出现了下述这种错误,一定要去检查你的外部配置文件中的属性名和mybatis-config.xml配置中的属性名是否一致,比如我,一个写的user,一个写的username,找了好大一会呜呜呜呜

Access denied for user ‘root’@‘localhost’(using password:YES)

如果外部配置文件与核心配置文件包含同一个字段,那么会优先使用外部配置文件

报错如下:

当内置配置文件的密码正确,而引入外部配置文件的密码,错误时:

当内置配置文件的密码错误,而引入外部配置文件的密码,正确时:

查询成功:

别名优化:

方式1:

当实体类涉及很长时,我们可以通过typeAliases标签给它取别名:

<typeAliases>
    <typeAlias type="com.pojo.user" alias="MyUser"/>
</typeAliases>

那么在其他地方需要使用该实体时,我们就能直接使用别名啦。


方式2:


也可以指定一个包名,mybatis会在包名下面搜索需要的java bean,比如:

扫描实体类的包,它的默认别名就为这个类的类名,首字母小写


举例:

在mybatis-config.xml文件中指定包名:

studentsMapper.xml文件中:

在实体类比较少的时候,使用第一种方式,如果实体类比较多,建议使用第二种。第一种可以自定义别名,第二种则不行,如果使用第二种方式想要自定义别名,那么要在指定包的基础上再加注解,此后该类就可通过注解来辨识

如下所示:

映射器:

MapperRegistry:注册绑定我们的Mapper文件

方式1:

<!--每一个Mapper.xml都需要在mybatis核心配置文件中注册!-->
<!--resources的值为映射文件对应的路径 -->
<mappers>
  <mapper resource="dao/students_interface.xml>
</mappers>

方式2:使用class文件绑定注册

<!-- class的值为对应mapper接口的全类名-->
<mappers>
  <mapper class="dao.students_interface/>
</mappers>

方式3:使用扫描包进行注入绑定

<mappers>
  <package name="dao"/>
</mappers>

举例:

注意:

接口和它的Mapper配置文件必须同名,接口和它的Mapper配置文件必须在同一个包下

相关文章
|
14天前
|
SQL 缓存 Java
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
本文详细介绍了MyBatis的各种常见用法MyBatis多级缓存、逆向工程、分页插件 包括获取参数值和结果的各种情况、自定义映射resultMap、动态SQL
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
|
2月前
|
SQL XML Java
mybatis复习04高级查询 一对多,多对一的映射处理,collection和association标签的使用
文章介绍了MyBatis中高级查询的一对多和多对一映射处理,包括创建数据库表、抽象对应的实体类、使用resultMap中的association和collection标签进行映射处理,以及如何实现级联查询和分步查询。此外,还补充了延迟加载的设置和用法。
mybatis复习04高级查询 一对多,多对一的映射处理,collection和association标签的使用
|
2月前
|
SQL XML Java
mybatis复习01,简单配置让mybatis跑起来
文章介绍了MyBatis的基本概念、历史和特点,并详细指导了如何配置MyBatis环境,包括创建Maven项目、添加依赖、编写核心配置文件、创建数据表和实体类、编写Mapper接口和XML配置文件,以及如何编写工具类和测试用例。
mybatis复习01,简单配置让mybatis跑起来
|
3月前
|
安全 Java 数据库连接
后端框架的学习----mybatis框架(3、配置解析)
这篇文章详细介绍了MyBatis框架的核心配置文件解析,包括环境配置、属性配置、类型别名设置、映射器注册以及SqlSessionFactory和SqlSession的生命周期和作用域管理。
后端框架的学习----mybatis框架(3、配置解析)
|
2月前
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
44 1
|
3月前
|
缓存 Java 数据库连接
mybatis1.常见配置
本文介绍了MyBatis框架中的常见配置及其加载顺序。配置可通过`properties`元素、资源文件或方法参数传递,其中方法参数传递的属性具有最高优先级。文章列举了几个重要的配置项,如`cacheEnabled`用于全局开启或关闭缓存功能;`lazyLoadingEnabled`控制对象的延迟加载行为;`useGeneratedKeys`允许JDBC支持自动生成主键;`defaultExecutorType`设定默认执行器类型等。此外,还介绍了多环境配置方法,通过`environments`元素可定义不同环境下的数据库连接信息,并可根据需求动态选择加载特定环境
|
4月前
|
SQL Java 数据库连接
idea中配置mybatis 映射文件模版及 mybatis plus 自定义sql
idea中配置mybatis 映射文件模版及 mybatis plus 自定义sql
91 3
|
4月前
|
SQL 缓存 Java
使用MyBatis优化Java持久层操作
使用MyBatis优化Java持久层操作
|
4月前
|
SQL 缓存 Java
使用MyBatis优化Java持久层操作
使用MyBatis优化Java持久层操作
若依修改,集成mybatisplus报错,若依集成mybatisplus,总是找不到映射是怎么回事只要是用mp的方法就找报,改成mybatisPlus配置一定要改
若依修改,集成mybatisplus报错,若依集成mybatisplus,总是找不到映射是怎么回事只要是用mp的方法就找报,改成mybatisPlus配置一定要改