Описание тега mybatis
MyBatis - это платформа для сопоставления объектов с реляционными базами данных с упором на высокую производительность и простоту. Дескрипторы или аннотации XML связывают объекты с операторами SQL или хранимыми процедурами.
MyBatis - это платформа для отображения объектов (Java и.NET) в реляционные базы данных с упором на простоту. Объекты связаны с операторами SQL и / или хранимыми процедурами с помощью файлов дескрипторов XML. В отличие от фреймворков ORM MyBatis отображает не объекты Java в таблицы базы данных, а методы в операторы SQL.
MyBatis легок и довольно прост в использовании, поскольку единственные задействованные части - это собственные объекты, XML и SQL. Он также интегрируется со средой Spring.
Пример файла сопоставления:
<sqlMap namespace="CUSTOMER">
<resultMap class="com.example.Customer" id="CustomerMapping">
<result column="CUSTOMER_ID" property="customerId" jdbcType="DECIMAL" />
<result column="NAME" property="name" jdbcType="VARCHAR" />
</resultMap>
<select id="CUSTOMER.selectByPrimaryKey" parameterClass="java.lang.Long" resultMap="CustomerMapping">
<![CDATA[
SELECT customer_id,
name
FROM customer
WHERE customer_id = #id:DECIMAL#
]]>
</select>
</sqlMap>
Простое использование:
Интерфейс:
package org.mybatis.example;
public interface BlogMapper {
@Select("select * from Blog where id = #{id}")
Blog selectBlog(int id);
}
Использование интерфейса:
BlogMapper mapper = session.getMapper(BlogMapper.class);
Blog blog = mapper.selectBlog(101);
Операторы и сопоставления SQL также могут быть перенесены в 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="org.mybatis.example.BlogMapper">
<select id="selectBlog" parameterType="int" resultType="Blog">
select * from Blog where id = #{id}
</select>
</mapper>
Весенняя интеграция:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="blogMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
<property name="mapperInterface" value="org.mybatis.example.BlogMapper" />
</bean>
<bean id="blogService" class="org.mybatis.example.BlogServiceImpl">
<property name="blogMapper" ref="blogMapper" />
</bean>
В коде вы просто используете интерфейс blogMapper:
public class BlogServiceImpl implements BlogService {
private BlogMapper blogMapper;
public void setBlogMapper(BlogMapper blogMapper) {
this.blogMapper = blogMapper;
}
public void doSomethingWithABlog(int blogId) {
Blog blog = blogMapper.selectBlog(blogId);
// ...
}
}
Ресурсы