账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    使用MyBatis Plus后如何设计Dao层 Service层?
    • 2019-09-26 00:00
    • 10
    73
    0

    之前一直用MyBatis,Dao层写各种SQL语句,Service层写业务,其中会调用到Dao层。

    转MyBatis Plus后,我对此产生了困惑。因为Dao层的方法可能会被不止一个Service层的方法调用,但是使用MyBatisPlus的话可以在业务层方法中直接传入QueryWrapper来使用,这样如果业务层别的方法也需要使用此方法的话只能重新写一遍吗?

    例如:根据年龄查询用户,使用MyBatis Plus只需要在业务层调用userMapper.selectOne(new QueryWrapper<User>().eq("user_age", age)); 而业务层的其他方法也可能需要根据年龄查询用户,这时我只能再写一遍userMapper.selectOne(new QueryWrapper<User>().eq("user_age", age)); 语句吗?

    我想一个好的设计应该是将其封装为Dao层的方法,但是封装为Dao层跟直接写SQL语句差别也不是很大,那这样的话我的MyBatisPlus不是失去意义了吗?

    或者说是我应该为每一个需要使用的SQL语句在Service层定义一个方法吗?

    还是说我原本的分层模式就有问题?

    感谢解答。来自一个菜鸟的疑惑。

    4
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 我在y城运快递 普通会员 1楼

      在使用MyBatis Plus后,设计Dao层和Service层是一个很好的实践。以下是一些设计这两个层的建议:

      1. DAO层设计:
      2. 定义接口:定义一个接口,这个接口将描述数据库操作的基本逻辑。例如,你可以定义一个接口,这个接口将描述如何查询数据库,如何更新数据库,如何删除数据库等。
      3. 实现接口:使用MyBatis Plus的映射文件(如mybatis-plus-config.xml)来实现接口。映射文件中,你需要定义如何将数据从数据库中提取出来,如何将数据插入到数据库中,如何更新数据库等。
      4. 数据访问:在Service层中,你需要实现这个接口。你可以通过调用这个接口来执行数据库操作。

      5. Service层设计:

      6. 定义接口:定义一个接口,这个接口将描述Service层中的功能。例如,你可以定义一个接口,这个接口将描述如何查询数据,如何更新数据,如何删除数据等。
      7. 实现接口:使用MyBatis Plus的映射文件(如mybatis-plus-config.xml)来实现接口。映射文件中,你需要定义如何将数据从数据库中提取出来,如何将数据插入到数据库中,如何更新数据库等。
      8. 数据访问:在Service层中,你需要实现这个接口。你可以通过调用这个接口来执行数据库操作。

      注意:在整个设计过程中,你需要考虑如何将业务逻辑和数据访问分离。你需要在Service层中实现业务逻辑,而在Dao层中实现数据访问。这样可以提高代码的可维护性和可扩展性。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部