一句话:(我希望我能)像动态语言(Laravel/Django)那样编写代码,并享受Java的性能
我们知道写下MyBatis密码是非常冗长的。。。例如,作为玩具示例,以下MyBatis代码:
public interface CommentDao {
@Select(
"SELECT * FROM comments"+
"<foreach collection='blogIds' item='id' open='(' separator=','
close=')'>"+
"#{id}"+
"</foreach>"+
"AND id <= #{pageStart}"+
"ORDER BY id DESC"+
"LIMIT #{pageLimit}"
)
List<Comment> getComments(List<Integer> blogIds, long pageStart, int pageLimit);
}
哪个IMHO太长了:(
因此,我建议如下:我们只需要写下非常简单的Python(或PHP,待定)代码:
def getComments(blogIds, pageStart, pageLimit):
comments.select()
.whereBlogId(blogIds)
.page(pageStart, pageLimit)
而且它将自动生成上面的大MyBatis代码(例如,单击一下python generate.py
)
上述守则的备注—
.whereBlogId
等都是静态类型的(由代码生成器),因此使用PyCharm或Intellij IDEA,您将拥有代码完成的强大功能<foreach>
完全消失了;(ii)我们用语义而不是语法来编写。因此,我们不需要说三件事WHERE id<=start
&;{page()
当然,这只是一个简单的例子,我只想说明这种方法的潜力(Python/PHP generator+MyBatis):)
问题:我的建议好吗?还是会有一些我没有看到的问题
谢谢你的建议
p.s.我研究过其他解决方案,如JOOQ、MyBatis Plus、MyBatis Generator等,但没有一个具有上述良好特性。。。如果需要,我可以提供更多信息
目前没有回答
相关问题 更多 >
编程相关推荐