首页 > 其他 > 详细

Mybatis学习笔记

时间:2020-02-08 16:45:01      阅读:44      评论:0      收藏:0      [点我收藏+]

Mybatis教程: https://blog.csdn.net/hellozpc/article/details/80878563

sql语句的参数类型

parameterType有简单类型(8个基本类型和String)以及对象类型。有两种获取参数值的方法

#{字段名}:若参数类型为对象类型时,字段名必须与对象的属性名一致,若为简单类型则不用。String类型的参数会给参数值加上单引号;

${字段名}:若参数类型为简单类型时,必须用${value}获取参数值。${}直接替换占位符,String类型的参数不会给参数值加上单引号。sql语句动态生成的时候,使用${};

 <select id="queryUserByName" parameterType="String" reusltType="com.sa.User>

  select * from user where name = #{name} or name like ‘%${name}%‘

  and address_code = #{adderss.code}

  order by ${name}

</select>

sql语句的返回类型

1. resultType 

1.1 类的全路径

<select id="queryAllUsers"  resultType="com.sa.User">

  select * from user

</select>

1.2使用类的别名

在mybatis配置文件中指定别名,然后mapper中可以直接使用别名 resultType="User"

<typeAliases> <typeAlias type="com.sa.User" alias="User"/> </typeAliases>

2.resultMap

2.1 解决实体类和表字段名称不一致问题

autoMapping默认完成映射,需要开启驼峰匹配

<resultMap id="userResult" type="com.sa.User" autoMapping="true">

  <id property="id" column="user_no">
  <result property="name" column="user_name">

</resultMap>

也可以使用如下方法解决字段名称不一致的问题

<select id="queryAllUsers"  resultType="HashMap">

  select user_no "id", user_name "name" from user

</select>

2.2 解决实体类和表字段类型不一致问题

需要用到类型转换器

 

调用存储过程

a. 编写存储过程

create or replace procedure procQueryCountByName (name in varchar, count out number)

as begin

  select count(*) from user where name = name;

end;

b. 定义Mapper接口

int queryCountByAgeWithProc(HashMap params);

c. 编写Mapper.xml sql

存储过程的入参必须为对象类型

<select id="queryCountByNameWithProc" statementType="CALLABLE" parameterType="HashMap">

  { CALL procQueryCountByName(

    #{name, jdbcType=VARCHAR, mode=IN},
    #{count, jdbcType=INTEGER, mode=OUT},

  )}

</select>

d. 调用接口

Map<String, Object> params = new HashMap<>();

params.put("name", "lily");

userMapper.queryCountByAgeWithProc(params);

Object count = params.get("count");  // 获取输出参数

 

Mybatis学习笔记

原文:https://www.cnblogs.com/anxiao/p/12283345.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!