1. SqlSessionFactoryBuilder (构造器)
    • 会根据配置或者代码来生成SqlSessionFactory
  2. SqlSessionFactory (工厂接口)
    • 以后他来生成SqlSession
  3. SqlSession (会话)
    • 一个既可以发送SLQ执行返回结果,也可以获取Mapper的接口
  4. SQL Mapper (映射器)
    • 负责发送SQL 去执行,并返回结果。

使用MyBatis 肯定是要生成 SqlSessionFactory

  1.通过读取xml 配置文件用SqlSessionFactoryBuilder 生成

  2.通过代码用 SqlSessionFactoryBuilder 生成

SqlSessionFactory的作用?

  sqlSessionFactory 唯一的作用就是生产 MyBatis的核心接口对象SqlSession

  一般采用单例模式处理它

SqlSession的作用?

  SqlSession 的作用类似一个JDBC中的 Connection 对象代表着一个连接资源的启用。

  具体

  1. 获取Mapper 接口
  2. 发送 SQL语句 给数据库
  3. 控制数据库事务
    • commit()

  如何获得 SqlSession?

   SqlSession sqlSession = SqlSessionFactoty.opensession();

  

SQL Mapper (映射器)的作用?

  1. 描述映射规则。
  2. 提供SQL语句,并可以配置SQL参数类型,返回类型,缓存刷新等信息。
  3. 配置缓存
  4. 提供动态 SQL

如何实现映射器?

XML 方式创建映射器

1.映射器接口

public interface RoleMapper {
public int insertRole(Role role);
public int deleteRole(Long id);
public int updateRole(Role role);
public Role getRole(Long id);
public List<Role> findRoles(String roleName);
}

2.RoleMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.learn.ssm.chapter3.mapper.RoleMapper"> <insert id="insertRole" parameterType="role">
insert into t_role(role_name, note) values(#{roleName}, #{note})
</insert> <delete id="deleteRole" parameterType="long">
delete from t_role where id= #{id}
</delete> <update id="updateRole" parameterType="role">
update t_role set role_name = #{roleName}, note = #{note} where id= #{id}
</update> <select id="getRole" parameterType="long" resultType="role">
select id,
role_name as roleName, note from t_role where id = #{id}
</select> <select id="findRoles" parameterType="string" resultType="role">
select id, role_name as roleName, note from t_role
where role_name like concat('%', #{roleName}, '%')
</select>
</mapper>

3.在 mybatis-config.xml 中引入XML配置文件

    <mappers>
<mapper resource="com/ssm/mapper/RoleMapper.xml"/>
</mappers>

注解实现映射器

1.映射器接口

public interface RoleMapper2 {

    @Select("select id, role_name as roleName, note from t_role where id=#{id}")
public Role getRole(Long id); }

2..在 mybatis-config.xml 中引入对应的class路径

   <mappers>
<mapper class="com.ssm.mapper.RoleMapper2"/>
</mappers>

如何获取Mapper接口?

  通过SqlSession 获取Mapper 接口,并发送SQL

    RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);
Role role = roleMapper.getRole(1L);

最新文章

  1. dubbo服务提供与消费
  2. 在js中实现邮箱格式的验证
  3. 为SubSonic3.0的查询(SubSonic.Query.Select和存储过程)添加更多的执行功能
  4. Moon.Orm 5.0 (MQL版) 实际开发实例Demo
  5. Javascript学习笔记:3种递归函数中调用自身的写法
  6. Zebra_Form Packages: Zebra_Form Controls Generic XSS_Clean Classes: Zebra_Form_Control Class: Zebra_Form_Control
  7. hyper-v 中 安装 Centos 7.0 设置网络 教程
  8. C# 模拟POST提交文件
  9. php 回调函数
  10. AspectJ的安装和Eclipse的AJDT插件的配置
  11. iOS面试题02-数据存储
  12. Android开发中怎样调用系统Email发送邮件(多种调用方式)
  13. samba安装与配置
  14. vue数据绑定原理
  15. ArcGIS——使用符号级别区分重叠的面图层
  16. Flask的请求处理机制
  17. SpringBoot开源项目(企业信息化基础平台)
  18. SVN提交,提示&ldquo;remains in conflict&rdquo;错误
  19. innodb 表锁和行锁
  20. Jenkins与Docker的自动化CI/CD实战

热门文章

  1. OPPO数据中台之基石:基于Flink SQL构建实数据仓库
  2. mac下如何安装python3?
  3. AndroidStudio制作Nine-Patch【.9】图片
  4. Win10系统安装VMware-viclient-6.0无响应问题解决方法
  5. php实现手机定位功能的实例
  6. 使用ClientScriptManager向客户端注册脚本
  7. 云计算和 AWS 概述(一)
  8. windows服务器入门 初始化数据盘
  9. python3.6-Yelp/elastalert0.2.1-elk7.2.0邮件加企业微信告警
  10. linux的IO复用,select机制理解--ongoing