1、编写存储过程:
CREATE DEFINER=`root`@`%` PROCEDURE `selectData`()
BEGIN
select * from card ;
END2、card表结构:

3、Mybatis的xml文件语句:
<?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.ex.merget.dao.QueryDataDao">
<resultMap id="cardMap" type="com.ex.merget.model.Card">
<id column="OBJECT_ID" property="objectId" jdbcType="INTEGER"/>
<id column="CARD_ID" property="cardId" jdbcType="VARCHAR"/>
<id column="CARD_NAME" property="cardName" jdbcType="INTEGER"/>
</resultMap>
<select id="getData2" resultMap="cardMap">
{call selectData()}
</select>
</mapper>这里的call 后面跟的就是存储过程的名字。
4、实体类:
import lombok.Data;
@Data
public class Card {
private Integer objectId;
private String cardId;
private String cardName;
}
5、mapper文件:
import com.ex.merget.model.Card;
import org.apache.ibatis.annotations.*;
import java.util.List;
@Mapper
public interface QueryDataDao {
/**
* 根据cardId 查询数据
* @return
*/
List<Card> getData2();
}
注解的方式,不需要配置xml:
import com.ex.merget.model.Card;
import org.apache.ibatis.annotations.*;
import java.util.List;
@Mapper
public interface QueryDataDao
@Results(id = "selectList", value = {
@Result(column = "OBJECT_ID", property = "objectId"),
@Result(column = "CARD_ID", property = "cardId"),
@Result(column = "CARD_NAME", property = "cardName")
})
@Select("{call selectData()}")
@Options(statementType = StatementType.CALLABLE)
List<Card> getData3();
}然后就是正常的注入mapper,server方法中调用就可以了。
展示一下结果:

版权声明:本文为qq_42251944原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。