首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

MyBatis的诠注

2012-11-17 
MyBatis的注解基于注解的mybatis和spring整合:http://huangmin001.iteye.com/blog/1185806这个文章说的很

MyBatis的注解
基于注解的mybatis和spring整合:http://huangmin001.iteye.com/blog/1185806
这个文章说的很详细,很值得一看.


Mapper中注解(Annotation)的使用示例:http://puras.cn/mybatis-annotation-example

Mapper:

public interface RoleMapper {    final String SELECT_ALL = "SELECT * FROM nap_roles";    final String SELECT_BY_ID = "SELECT * FROM nap_roles WHERE id=#{id}";    final String INSERT = "INSERT INTO nap_roles(name, description, ctime, mtime) VALUES(#{name}, #{description}, #{creationTime}, #{modifiedTime})";    final String UPDATE = "UPDATE nap_roles SET name=#{name}, description=#{description}, mtime=#{modifiedTime} WHERE id=#{id}";    final String DELETE = "DELETE FROM nap_roles WHERE id=#{id}";    final String SELECT_BY_PAGE_BEGIN = "SELECT * FROM nap_roles";    final String SELECT_BY_PAGE_END = " limit #{startPosition}, #{maxResult}";    final String COUNT = "SELECT COUNT(id) FROM nap_roles WHERE 1=1 ";    @Insert(INSERT)    @Options(useGeneratedKeys = true, keyProperty = "id")    void create(Role role);    @Update(UPDATE)    void update(Role role);    @Delete(DELETE)    void delete(Long id);    @Select(SELECT_ALL)    @Results(value = {            @Result(property="id"),            @Result(property="name"),            @Result(property="description"),            @Result(property="creationTime", column="ctime"),            @Result(property="modifiedTime", column="mtime")    })    List findAll();    @SelectProvider(type = RoleProvider.class, method = "findByPage")    @Results(value = {            @Result(property="id"),            @Result(property="name"),            @Result(property="description"),            @Result(property="creationTime", column="ctime"),            @Result(property="modifiedTime", column="mtime")    })    List findByPage(Map params);    @Select(SELECT_BY_ID)    @Results(value = {            @Result(property="id"),            @Result(property="name"),            @Result(property="description"),            @Result(property="creationTime", column="ctime"),            @Result(property="modifiedTime", column="mtime")    })    Role findById(Long id);    @SelectProvider(type = RoleProvider.class, method = "getCount")    int getCount(Role role);    @Select(COUNT)    int count();}



在使用比较复杂的SQL时,会用到各种Provider来处理。

虽然都改用Annotation了,但还有些地方不是特别的爽。

1、ResultMap,不知道怎么来定义一个对象,所有的都引用一个;

2、所有的SQL都写到JAVA里了,修改起来,也是件麻烦事。

热点排行