MyBatis四大核心组件你知道吗?

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 对象代表着一个连接资源的启用。

具体

获取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 findRoles(String roleName);
}
2.RoleMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<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>
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路径

如何获取Mapper接口?

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

RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);
Role role = roleMapper.getRole(1L);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值