MyBatis 的 SQL 映射器有哪几种?

MyBatis 主要有以下几种 SQL 映射器:
1.statement:
使用预编译的 Statement 对象来执行 SQL 语句,可以防止 SQL 注入攻击。

<select id="selectUsers" resultType="map">
  select * from users
</select>

使用:

List<Map<String,Object>>users = mapper.selectUsers();

2.prepared statement:
使用带参数的占位符 SQL 语句。SQL语句和参数分开。

<select id="selectUser" parameterType="string" resultType="map">
  select * from users where id = #{id} 
</select>

使用:

Map<String, Object> user = mapper.selectUser("1");
  1. callable statement:
    调用存储过程或函数。
<select id="getSequence" resultType="int">
  {call nextval('user_seq')}
</select>

使用:

int sequence = mapper.getSequence();
  1. ResultSet:
    将结果集映射为简单类型或对象列表。
<select id="selectUsers" resultType="User">
  select * from users
</select>

使用:

List<User> users = mapper.selectUsers();
  1. 普通类型:
    将单行单列数据映射为简单类型。
<select id="selectCount" resultType="int">
  select count(*) from users 
</select>

使用:

int count = mapper.selectCount();