使用mybatis的两种方式

原创 2016年05月31日 21:49:34

使用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使用statementType="STATEMENT"

statementType="STATEMENT"是使用非预编译,现在我需要动态传人表名和字段名,所以需要用STATEMENT,使用之后所有变量取值都要改成${xxxx},而不是#{xxx},就是因为...
  • u011686226
  • u011686226
  • 2016年07月14日 09:34
  • 12058

MyBatis启动:MapperStatement创建

Mapper是接口,用来声明
  • www_______com
  • www_______com
  • 2014年09月02日 22:25
  • 1801

MyBatis使用总结

MyBatis使用总结
  • jxshangrao_86
  • jxshangrao_86
  • 2017年08月04日 11:27
  • 624

Mybatis框架通用Dao中getSqlSession().selectOne()的应用

一、通用DAO中,抽象出BaseDao接口,静态的字符串方法名。 二、实际项目中的应用。 实际类的初始化构造。 三、网络搜索的知识点。...
  • limuzi13
  • limuzi13
  • 2017年05月23日 16:58
  • 2598

深入理解mybatis

个人关于mybatis的理解
  • GeekSnow
  • GeekSnow
  • 2016年08月15日 15:51
  • 1693

Mybatis使用中遇到的问题-selectOne与返回值类型

Mybatis实操遇到的问题-由selectOne和返回值类型引发的一系列问题先是一个简单的错误写了一个简单的测试项目,分为两层:web层和core层,在写core层的DAO操作时候,使用了selec...
  • santta
  • santta
  • 2016年07月30日 21:50
  • 12707

MyBatis简单应用

MyBatis的前身就是iBatis,iBatis本是apache的一个开源项目,2010年这个项目由apahce sofeware foundation 迁移到了google code,并且改名为M...
  • a468903507
  • a468903507
  • 2015年03月23日 23:53
  • 723

Mybatis Select...for update用法

Mybatis Select…for update用法最近有需求批量处理大量数据,由于数据量很大,如果加分布式锁让一个线程跑需要太长时间,所以考虑集群中二十几台机器并行执行,每次取1000条数据处理。...
  • ToBeABetterOne
  • ToBeABetterOne
  • 2017年10月13日 15:58
  • 1659

mybatis实战教程(mybatis in action),mybatis入门到精通

MyBatis 目录(?)[-] mybatis实战教程mybatis in action之一开发环境搭建mybatis实战教程mybatis in action之二以接口的方式编程mybati...
  • techbirds_bao
  • techbirds_bao
  • 2013年07月03日 14:34
  • 563589

MyBatis -- 一步步教你使用MyBatis

1、建立开发环境 1.1  创建项目,java项目或者javaweb项目均可,如图: 1.2  添加所需要的jar包到项目lib目录下 一个MyBatis-3.2.4.jar包 一个驱动包...
  • u014034854
  • u014034854
  • 2015年08月05日 21:19
  • 3622
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用mybatis的两种方式
举报原因:
原因补充:

(最多只允许输入30个字)