使用mybatis的两种方式

Posted nicewuranran

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用mybatis的两种方式相关的知识,希望对你有一定的参考价值。

使用mybatis两种方式


有两种方式使用mybatis
1、基于传统方式statementid 方式
2、基于Mapper接口方式调用

代码片段

// 1、传统的使用 statementId方式

//先确定statementId全限定名
final String statementId = "com.xuyi.usemybatis.pojo.Student.selectStudentById";
Student student = sqlSession.selectOne(statementId, 4);

// 2、使用mapper接口方式

//获得Mapper对象
StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
Student student = studentMapper.selectStudentById(4);

推荐使用基于Mapper接口方式优点:
1、书写简洁
2、类型安全检查不需要自己强制类型转换
3、mybatis自动帮我们生成代理对象,集成spring时候很方便使用

基于传统的statement id方式

//插入记录
int insert(String statement, Object parameter);
//更新记录
int update(String statement, Object parameter);
//检索单条记录
<T> T selectOne(String statement, Object parameter);
//检索多条记录
<E> List<E> selectList(String statement, Object parameter);
//删除记录
int delete(String statement, Object parameter);

所有的操作都有一个statement,即全限定名。namespace+statementid

备注:使用传统方式对映射器配置文件的namespace命名没有任何要求,只要statement全限定名不重复就可以。

基于Mapper接口方式

Mapper接口实现是由mybatis框架帮我们实现的,生成代理对象供我们使用。

备注:使用Mapper接口方式是有要求的,映射器配置文件的namespace必须和Mapper接口的全限定名一直。比如:

<?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.xuyi.usemybatis.dao.StudentMapper">

...定义statement 语句

</mapper>

以上是关于使用mybatis的两种方式的主要内容,如果未能解决你的问题,请参考以下文章

mybatis的两种Dao开发方式

mybatis执行CRUD操作的两种方式配置和注解

MyBatis事务管理的两种方式

Spring整合MyBatis的两种方式

MyBatis开发Dao层的两种方式(Mapper动态代理方式)

MyBatis开发Dao层的两种方式(Mapper动态代理方式)