MyBatismybatis 基础

前言

MyBatis作为同一慢持久层的框架,从最初的ibatis更称,经过五六年的开拓进取创新,如今就更新至了3.4.5本子。MyBatis通过简单的xml或注解配置,就可知将接口及Java的目标映射成数据库的记录,避免了过多的手动配置,现已经给愈来愈多之开发者使用。

恰恰开头动以来,可能会见生多迷惑:明明传递了价值,为什么传递不交xml中?到底该用resultMap还是用resultType?如果本身思念回来String、Map、List等等,该怎么勾勒?在描写了这样多MyBatis代码后,我总了瞬间门类面临泛的几乎种,供大家参考,如果想越了解,请参见官方文档:http://www.mybatis.org/mybatis-3/zh/index.html

MyBatis 1

干货图

MyBatis 2

 

 

接口和xml对诺图表

高清图:http://img.blog.csdn.net/20170831064012748

干货图描述

每当工作逻辑中,最常用的当属查询了,传递的值多样化,需要的返回值样式也无一致,但是当描绘好了回到再拘留时,发现呢不怕那几种植。

  1. 参数类型:String,返回值类型:List<对象>

public List<Student> getStudentByName(@Param(value=”name”)
String name);

<select id=”getStudentByName” parameterType=”java.lang.String”
resultMap=”BaseResultMap”>

select * from xxx where stu_name = #{name}

</select>

  1. 参数类型:Map<String, Object>,返回值类型:List<对象>

public List<Student> getStudents(Map<String, Object>
params);

<select id=”getStudents” parameterType=”java.util.Map”
resultMap=”BaseResultMap”>

select * from xxx where stu_name = #{name}

</select>

  1. 参数类型:String,返回值类型:对象

public Student getStudentById(@Param(value=”id”) String id);

<select id=”getStudentById” resultMap=”BaseResultMap”>

select * from xxx where id = #{id}

</select>

  1. 参数类型:String,返回值类型:String

String queryUserIdByThirdParty(@Param(“openId”) String openId);

<select id=”queryUserIdByThirdParty”
resultType=”java.lang.String”>

select user_id from sys_users where open_id=#{openId}

</select>

  1. 参数类型:String,返回值类型:List<String>

List<String> getUserIds(@Param(“tenantId”) String tenantId);

<select id=”getUserIds” resultType=”java.lang.String”>

select id from sys_users where tenant_id = #{tenantId};

</select>

  1. 参数类型:String,返回值类型:Map<String, Object>

Map<String, Object> getChargeSum(@Param(value = “uid”) String
uid);

<select id=”getChargeSum” resultType=”java.util.Map”
parameterType=”java.lang.String”>

select sum(transaction_amount) as chargeSum from xxx where id =
#{uid}

</select>

  1. 参数类型:String,返回值类型:List<Map<String, Object>>

List<Map<String,Object>> getReadsNum(@Param(value =
“account”) String account);

<select id=”getReadsNum” resultType=”java.util.Map”>

select * from xxxx where mw_account = #{account}

</select>

  1. 参数类型:String,返回值类型:int

int deleteById(@Param(value = “id”) String id, @Param(value = “uid”)
String uid);

<delete id=”deleteById” parameterType=”java.lang.String”>

delete from xxxx where id = #{id} and create_by = #{uid};

</delete>

  1. 参数类型:void,返回值类型:int

int deleteById(@Param(value = “id”) String id, @Param(value = “uid”)
String uid);

<delete id=”deleteById”>

delete from xxxx where id = #{id} and create_by = #{uid};

</delete>

  1. 参数类型:对象,返回值类型:int

int updateStuInfo(StudentInfo studentInfo);

<update id=”updateStuInfo”
parameterType=”xx.xxx.xxxx.StudentInfo”>

update xxxx set stu_name = #{stuName}…

where id = #{id}

</update>

说明

  1. 接口中之@Param注解指的凡
    org.apache.ibatis.annotations.Param,使用这个注解就一定给受一个参数起一个号,在xml中得以一直行使是别名。如果未动这个注解,需要保证参数的称与xml中property配置相同。

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis</artifactId>

<version>3.4.5</version>

</dependency>

2.
于询问中,parameterType有时是可选的,但是resultMap或者resultType基本上还是要之。

  1. BaseResultMap指的凡数据表和对象的映射关系,如:

<resultMap id=”BaseResultMap” type=”xx.xxx.xxxx.StudentInfo”>

<id column=”id_” jdbcType=”VARCHAR” property=”id” />

</resultMap>

  1. 倘运用IDEA开发工具,可以下载Free MyBatis
    plugin插件,可以于xml和接口直接开展点击跟踪。

MyBatis 3

这次没有关联到批量安插和复杂点继承关系查询,后续会更新。

网站地图xml地图