热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

《Java从入门到放弃》框架入门篇:SpringBoot+mybatis使用注解方式实现mapper

上一篇说到springboot+mybatis可以完全注解不用配置文件,本篇主要将mapper.xml文件改为纯注解方式。原AuthorMapper.xml文件内容如下:

上一篇说到springboot+mybatis可以完全注解不用配置文件,本篇主要将mapper.xml文件改为纯注解方式。

原AuthorMapper.xml文件内容如下:













id, username, password, email, address, phone



delete from author
where id = #{id,jdbcType=INTEGER}


insert into author (id, username, password,
email, address, phone
)
values (#{id,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR},
#{email,jdbcType=VARCHAR}, #{address,jdbcType=VARCHAR}, #{phone,jdbcType=VARCHAR}
)


insert into author


id,


username,


password,


email,


address,


phone,




#{id,jdbcType=INTEGER},


#{username,jdbcType=VARCHAR},


#{password,jdbcType=VARCHAR},


#{email,jdbcType=VARCHAR},


#{address,jdbcType=VARCHAR},


#{phone,jdbcType=VARCHAR},




update author


username = #{username,jdbcType=VARCHAR},


password = #{password,jdbcType=VARCHAR},


email = #{email,jdbcType=VARCHAR},


address = #{address,jdbcType=VARCHAR},


phOne= #{phone,jdbcType=VARCHAR},


where id = #{id,jdbcType=INTEGER}


update author
set username = #{username,jdbcType=VARCHAR},
password = #{password,jdbcType=VARCHAR},
email = #{email,jdbcType=VARCHAR},
address = #{address,jdbcType=VARCHAR},
phOne= #{phone,jdbcType=VARCHAR}
where id = #{id,jdbcType=INTEGER}

现将mapper.xml文件直接删除。之后修改AuthoerMapper文件,添加如下注解。

public interface AuthorMapper {
@Delete("delete from from author where id = #{id}")
int deleteById(Integer id);
@Insert("insert into author (id, username, password, email, address, phone)values (#{id}, #{username}, #{password}, #{email}, #{address}, #{phone})")
int insert(Author record);
@Update("update author set username = #{username},password = #{password},email = #{email},address = #{address},phOne= #{phone} where id = #{id}")
int update(Author record);

@Select("select id, username, password, email, address, phone from author where id = #{id}")
@Results(id="authorMapper", value={
@Result(column="id", property="id", id=true),
@Result(column="username", property="username"),
@Result(column="password", property="password"),
@Result(column="email", property="email"),
@Result(column="address", property="address"),
@Result(column="phone", property="phone")
})
Author selectByPrimaryKey(Integer id);
@Select("select id, username, password, email, address, phone from from author")
@ResultMap("authorMapper")
List selectAll();
}

修改完毕,运行项目,结果正常显示。

 

下面是对Mapper中常用注解的说明:

  • @Select 是查询类的注解,所有的查询均使用这个

  • @Result 修饰返回的结果集,关联实体类属性和数据库字段一一对应,如果实体类属性和数据库属性名保持一致,就不需要这个属性来修饰。

  • @Insert 插入数据库使用,直接传入实体类会自动解析属性到对应的值

  • @Update 负责修改,也可以直接传入对象

  • @delete 负责删除

  • @Results标注之前xml中的resultMap

  • @ResultMap标注结果集引用

 



推荐阅读
author-avatar
大明白也糊涂
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有