Mapper XML Files
The Mapper XML files have only a few first class elements (in the order that they should be defined):
cache
– Configuration of the cache for a given namespace.cache-ref
– Reference to a cache configuration from another namespace.resultMap
– The most complicated and powerful element that describes how to load your objects from the database result sets.parameterMap
– Deprecated! Old-school way to map parameters. Inline parameters are preferred and this element may be removed in the future. Not documented here.sql
– A reusable chunk of SQL that can be referenced by other statements.insert
– A mapped INSERT statement.update
– A mapped UPDATE statement.delete
– A mapped DELETE statement.select
– A mapped SELECT statement.
The next sections will describe each of these elements in detail, starting with the statements themselves.
select
<select id="findPersonById" parameterType="int" resultType="hashmap">
SELECT * FROM PERSON WHERE ID = #{id}
</select>
This tells MyBatis to create a PreparedStatement parameter. With JDBC, such a parameter would be identified by a “?” in SQL passed to a new PreparedStatement, something like this:
// Similar JDBC code, Not Mybatis...
String findPersonById = "SELECT * FROM PERSON WHERE ID=?";
PreparedStatement ps = conn.preparedStatement(findPersonById);
ps.setInt(1, id);
The ‘select’ element has more attributes that allow you to configure the details of how each statement should behave.
<select
id