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");
- callable statement:
调用存储过程或函数。
<select id="getSequence" resultType="int">
{call nextval('user_seq')}
</select>
使用:
int sequence = mapper.getSequence();
- ResultSet:
将结果集映射为简单类型或对象列表。
<select id="selectUsers" resultType="User">
select * from users
</select>
使用:
List<User> users = mapper.selectUsers();
- 普通类型:
将单行单列数据映射为简单类型。
<select id="selectCount" resultType="int">
select count(*) from users
</select>
使用:
int count = mapper.selectCount();