mybatis注解开发

在最近的项目中,由于目录结构的调整,讲xml文件去掉,使用全注解的方式来进行开发,记录一下自己的学习。

        1》在dao层接口上,之前只有spring对数据访问组件(DAO)的注解,@Repository注解,但是现在需要@Mapper这个注解,MyBatis的注解形式提供@Select()、@Insert、@Update和@Delete 这四个基本的注解,用于对数据库简单的操作。

        2》在条件查询并分页的时候,需要用到动态sql语句,并且在记录总数 Count 和每页内容List的时候,写上两遍比较麻烦,可读性比较差,所以将动态sql语句提出之后,需要引入<script></script>将整条sql语句包裹起来。

        3》注解方式依旧需要手动映射,将数据库字段和实体类对象对应起来(可以只对应字段不一致的部分,此外MySQL数据库不区分大小写,所以需要使用下划线:_ 来区分开单词,然而_是不符合Java命名规范的,Java需要使用驼峰命名法来区别单词),所以使用到:

@Select("select * from plan where p_id=#{pId} order by id desc ")
@Results(id="resultMap",value={
        @Result(property = "pId",column = "p_id"),
        @Result(property = "updateTime",column = "update_time")
})
List<Plan> getPlan(@Param("pId")Integer pId);

  在其它地方使用到时需要引入,也就是在sql语句下引入即可:

@ResultMap("resultMap")

还有一个值得注意的地方:@Results 不可以单独存在,必须存在于一个查询语句的下面,否则将没有任何作用。

4》当然虽然有了这几种方法,但是在新增@Insert,或者修改@Update的时候,因为发送的数据不确定,如果使用动态语句,代码可读性很差,所以有@InsertProvider,@DeleteProvider@UpdateProvider,和@SelectProvider这几种注解,由于参加工作时间较短,自己还没有高深的功力封装方法,具体使请参考:https://blog.csdn.net/coder_zyz/article/details/78997328




  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值