MyBatis—02—代替Dao层的mapper映射文件;MyBatis配置文件详解

    


 

 

一. Mapper映射配置文件

在JDBC中,我们会把访问数据库的代码放在Dao层,也就是建一个com.dao的package;
但在 MyBatis 中, 我们的包名推荐使用 mapper ,  并且我们只需要写一个映射配置文件即可, 不需要写接口和实现类了.
UserMapper.xml, 用于定义要执行的 SQL 语句, 同时设定返回结果的类型.

1.编写mapper层的xml映射配置文件

2. 在MyBatis核心配置文件中添加 mapper 扫描

MyBatis核心配置文件即 mybatis.xml

 

 3.测试

mybatis启动流程:

  • 加载核心配置文件
  • 构建工厂
  • 打开session
  • 执行sql
  • 释放资源

 

 

 

 

 

二. MyBatis 所有配置文件详解

1.MyBatis核心配置文件

(1)configuration
  • 这是配置文件的根元素, 所有的其他元素都要在这个标签下使用.
(2)environments
  • 用于管理所有的环境, 并可以指定默认使用哪个环境. 通过default 属性来指定.
(3)environment
  • 用于配置环境,  id 属性用于唯一标识当前环境
(4)transcationManager事务管理器:
用于配置事务管理器其中的type 属性用于指定 MyBatis 采用何种方式管理事务:
  •  JDBC: 表示 MyBatis 采用与原生 JDBC 一致的方式管理事务
  • MANAGED: 表示将事务管理交给其他容器进行, 例如 Spring1.5用于配置数据源, 设置 MyBatis 是否使用连接池技术, 并且配置数据库连接的四个参数
(5)datasource数据源:
它的type 属性用于设置 MyBatis 是否使用连接池技术:
  •  POOLED, 表示采用连接池技术(可以减少每次获取连接的时间)
  •  UNPOOLED, 表示每次都会开启和关闭连接, 不使用连接池技术
  •  JNDI, 使用其他容器(例如 Spring)提供数据源
(6)<proverty  name=  value=   />
  • 用于配置数据库连接参数(driver, url, username, password)
(7)<mappers></mappers>
  • 用于扫描 mapper 信息
(8)properties标签
  • 在前面声明了properties标签并使用resouce参数指明指向的文件后,我们在<property name= value=>中的value,可以直接使用${}形式获取.properties文件中的值;
  • 注意:.properties文件中,存储的文本都是键值对形式, 而${}表示get(key);

(9)settings标签

(10)typeAliases标签

  • 给一个类起别名;
  • 子标签: <typeAlias type=com.tjpu.mapper.UserMapper alias="u"/>
  • 这个时候,我们在文件中再向调用com.tjpu.mapper.UserMapper时,我们只需要写u就可以了;
  • 子标签: <package name=com.tjpu.mapper/>  那么这个包下所有类的全限定路径名都被起了个别名, 别名就是他们的类名;

2. mapper 层的映射配置文件

2.1<mappers></mappers>
根元素
(1) namespace 属性
用于指定命名空间, mybatis 是通过 namespace+id 的方式来定位 SQL语句的, 所以必须指定namespace. 通常namespace被配置为全限定路径
(2)select属性
表示查询;
 
 
 
 

三. MyBatis 中常用的三个查询方法

1.selectList

用于查询多条数据的情况, 返回值是一个 list 集合. 如果没有查到任何数据, 返回没有元素的空List集合(空集合, 不是 null)

2. selectOne

用于查询单条数据的情况, 返回值是一个对象. 如果没有查到任何数据, 返回 null

3. selectMap

用于查询多条数据的情况, 多条数据要形成一个 Map 集合(即键值对),  需要指定哪个属性作为 key. 如果查不到, 返回一个空 map 集合(不是 null);
注意:selectMap方法, 也可以调用mapper层xml映射配置文件中的 selAll;
posted @ 2019-10-11 16:26  Eric-Shen  阅读(831)  评论(0编辑  收藏  举报