mybatis에서 새로 왔고 다음 mybatis3-user-guide.pdf를 따르고 있습니다.매퍼 인터페이스가 필요하지 않습니다.
첫 번째 애플리케이션을 설정했습니다.
그러나 나는 매퍼 인터페이스에 대해 정확히 알지 못했다.
의 MyBatis config.xml의 :
<configuration>
<typeAliases>
<typeAlias alias="User" type="com.king.mapper.User" />
</typeAliases>
<mappers>
<mapper resource="com/king/mapper/UserMapper.xml" />
</mappers>
</configuration>
UserMapper.xml :
<mapper namespace="com.king.mapper.UserMapper">
<select id="selectById" parameterType="int" resultMap="userMap">
select * from users where id = #{id}
</select>
<select id="selectAll" resultType="hashmap">
select * from users order by created_at desc
</select>
<insert id="insert" parameterType="User" useGeneratedKeys="true" keyProperty="id">
insert into users (name,created_at,updated_at) values (#{name},current_timestamp,current_timestamp)
</insert>
<update id="update" parameterType="User">
update users set name = #{name},updated_at=current_timestamp where id = #{id}
</update>
<delete id="delete" parameterType="int">
delete from users where id = #{id}
</delete>
<resultMap id="userMap" type="User">
<result property="createDate" column="created_at" />
<result property="updateDate" column="updated_at" />
</resultMap>
</mapper>
지금까지
이 내 응용 프로그램에 대한 모든 구성 (예를 들어 모델 사용을)입니다 Dao :
public abstract class AbstractSimpleDaoImpl<T> extends SqlSessionDaoSupport implements IDao<T> {
@Override
public T query(int id) {
return getSqlSession().selectOne(getMapperNamespace() + ".selectById", id);
}
@Override
public List<T> list() {
return getSqlSession().selectList(getMapperNamespace() + ".selectAll");
}
@Override
public int add(T entity) {
return getSqlSession().insert(getMapperNamespace() + ".insert", entity);
}
@Override
public int update(T entity) {
return getSqlSession().update(getMapperNamespace() + ".update", entity);
}
@Override
public void delete(T entity) {
getSqlSession().delete(getMapperNamespace() + ".delete", entity);
}
protected abstract String getMapperNamespace();
}
UserDao :
public class UserDao extends AbstractSimpleDaoImpl<User> {
private static String pack = "com.king.mapper.UserMapper";
@Override
protected String getMapperNamespace() {
return pack;
}
}
효과가있었습니다. 그러나 mybatis의 예제는 매퍼 인터페이스를 참조합니다.
위의 예에서 UserMapper라는 인터페이스를 만들어야하는 것으로 보입니다.
하지만 필요한지 궁금한가요? 내가 그것을 사용해야 할 때?
BTW, 내 의견으로는 매퍼 인터페이스가 DAO의 기능을 좋아한다는 것을 알게되었습니다. DAO와 인터페이스에는 동일한 이름을 가진 여러 메소드가있을 수 있기 때문에
매퍼가 DAO를 대체 할 수 있습니까? 어떤예요? – hguser
예제는 사용자 자신의 설정 파일과 함께 작성한 인터페이스입니다. 매퍼 사용하기 섹션의 MyBatis doc [here] (http://www.mybatis.org/core/java-api.html)을 살펴보십시오. 직접 연결할 수 없으니 죄송합니다. XML 맵핑 파일을 생략하고 맵퍼 인터페이스에서 주석을 사용할 수도 있습니다. 여기에 많은 예제를 볼 수 있습니다 (http://mybatis.co.uk/). –