MyBatis核心组件
2024-09-01 15:14:43
- SqlSessionFactoryBuilder (构造器)
- 会根据配置或者代码来生成SqlSessionFactory
- SqlSessionFactory (工厂接口)
- 以后他来生成SqlSession
- SqlSession (会话)
- 一个既可以发送SLQ执行返回结果,也可以获取Mapper的接口
- SQL Mapper (映射器)
- 负责发送SQL 去执行,并返回结果。
使用MyBatis 肯定是要生成 SqlSessionFactory
1.通过读取xml 配置文件用SqlSessionFactoryBuilder 生成
2.通过代码用 SqlSessionFactoryBuilder 生成
SqlSessionFactory的作用?
sqlSessionFactory 唯一的作用就是生产 MyBatis的核心接口对象SqlSession
一般采用单例模式处理它
SqlSession的作用?
SqlSession 的作用类似一个JDBC中的 Connection 对象代表着一个连接资源的启用。
具体
- 获取Mapper 接口
- 发送 SQL语句 给数据库
- 控制数据库事务
- commit()
如何获得 SqlSession?
SqlSession sqlSession = SqlSessionFactoty.opensession();
SQL Mapper (映射器)的作用?
- 描述映射规则。
- 提供SQL语句,并可以配置SQL参数类型,返回类型,缓存刷新等信息。
- 配置缓存
- 提供动态 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);
最新文章
- dubbo服务提供与消费
- 在js中实现邮箱格式的验证
- 为SubSonic3.0的查询(SubSonic.Query.Select和存储过程)添加更多的执行功能
- Moon.Orm 5.0 (MQL版) 实际开发实例Demo
- Javascript学习笔记:3种递归函数中调用自身的写法
- Zebra_Form Packages: Zebra_Form Controls Generic XSS_Clean Classes: Zebra_Form_Control Class: Zebra_Form_Control
- hyper-v 中 安装 Centos 7.0 设置网络 教程
- C# 模拟POST提交文件
- php 回调函数
- AspectJ的安装和Eclipse的AJDT插件的配置
- iOS面试题02-数据存储
- Android开发中怎样调用系统Email发送邮件(多种调用方式)
- samba安装与配置
- vue数据绑定原理
- ArcGIS——使用符号级别区分重叠的面图层
- Flask的请求处理机制
- SpringBoot开源项目(企业信息化基础平台)
- SVN提交,提示&ldquo;remains in conflict&rdquo;错误
- innodb 表锁和行锁
- Jenkins与Docker的自动化CI/CD实战
热门文章
- OPPO数据中台之基石:基于Flink SQL构建实数据仓库
- mac下如何安装python3?
- AndroidStudio制作Nine-Patch【.9】图片
- Win10系统安装VMware-viclient-6.0无响应问题解决方法
- php实现手机定位功能的实例
- 使用ClientScriptManager向客户端注册脚本
- 云计算和 AWS 概述(一)
- windows服务器入门 初始化数据盘
- python3.6-Yelp/elastalert0.2.1-elk7.2.0邮件加企业微信告警
- linux的IO复用,select机制理解--ongoing