- 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层是一个很好的实践。以下是一些设计这两个层的建议:
- DAO层设计:
- 定义接口:定义一个接口,这个接口将描述数据库操作的基本逻辑。例如,你可以定义一个接口,这个接口将描述如何查询数据库,如何更新数据库,如何删除数据库等。
- 实现接口:使用MyBatis Plus的映射文件(如mybatis-plus-config.xml)来实现接口。映射文件中,你需要定义如何将数据从数据库中提取出来,如何将数据插入到数据库中,如何更新数据库等。
-
数据访问:在Service层中,你需要实现这个接口。你可以通过调用这个接口来执行数据库操作。
-
Service层设计:
- 定义接口:定义一个接口,这个接口将描述Service层中的功能。例如,你可以定义一个接口,这个接口将描述如何查询数据,如何更新数据,如何删除数据等。
- 实现接口:使用MyBatis Plus的映射文件(如mybatis-plus-config.xml)来实现接口。映射文件中,你需要定义如何将数据从数据库中提取出来,如何将数据插入到数据库中,如何更新数据库等。
- 数据访问:在Service层中,你需要实现这个接口。你可以通过调用这个接口来执行数据库操作。
注意:在整个设计过程中,你需要考虑如何将业务逻辑和数据访问分离。你需要在Service层中实现业务逻辑,而在Dao层中实现数据访问。这样可以提高代码的可维护性和可扩展性。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
