关于在Java三层架构下传统crud业务的一般逻辑和几点思考
持久层逻辑
在传统的项目业务中,持久层的逻辑其实较为简单,就是负责与数据库进行交互。那么在进行持久层开发时,需要注意以下问题。
- sql语句逻辑。
- sql语句调优。
- 参数传递、返回值类型的选择。
sql语句逻辑
所谓持久层,其实就是希望持久层逻辑能够得到长期有效的利用,那么从sql语句的逻辑设计上,就要考虑其复用性和高效性。首先通过例子来体现一下sql语句的复用性:
假设有这样一个业务场景,业务层获取数据需要以下两个相似持久层的sql语句
<select id="queryUserInfoByName" parameterType="string" resultType="user">
select * from User where username = #{username}
</select>
<select id="queryUserInfoByPhone" parameterType="string" resultType="user">
select * from User where phone = #{phone}
</select>
我们可以通过<sql>
标签,把公共的部分定义成一个块:
<sql id="queryUserInfo">
select * from User where
</sql>
然后在需要该段sql的地方通过include标签引入即可,此时mysql语句变成这样:
<select id="queryUserInfoByName" parameterType="string" resultType="user">
<include refid="queryUserInfo"