在杭州某公司 springboot 后端开发岗干了半个月,发现了很多不足,以及一些值得记录的地方。


我在入职的时候,其实在 springboot 方面是算是个小白,只懂一点基础知识,甚至 mybatis 框架都没有上手用过...

先是尝试自己照着模板写,然后看同事的代码修改,现在勉强算是熟练掌握基本的增删改查的接口编写了。

但是,我总是能发现一些新的写法,更加方便更加灵活,但应该对应不同的应用场景,也应该相互结合使用。

# 最开始

最开始,我学会使用 Mybatis 写增删改查,

.xml 文件中写 sql 语句:

1
2
3
<select id="function_name" resultType="java.util.Map">
select * from table_name
</select>

或者直接在 DAO 层在函数名上方用 @... 注解:

1
2
3
@Select("select * from table_name")
// or
@Insert("insert into table_name (id, field_name) values (#{id}, #{function_variable_name})")

# 然后

然后,我知道了 MyBatis-Plus

可以继承通用 Service 层 IService 和通用 Mapper 层 BaseMapper ,它们集成了相当一部分可用的增删改查函数,直接调用就行,不用写 sql 语句:

1
2
3
4
5
6
public interface ServiceName extends IService<EntityName> {}
public class ServiceImplName extends ServiceImpl<DaoName, EntityName>
implements ServiceName {}
// and
@Mapper
public interface DaoName extends BaseMapper<EntityName> {}

当然,查询中还是要用 QueryWrapper 构建查询语句的:

1
2
QueryWrapper<EntityName> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(String column, Object val);

# 现在

现在,我知道可以将二者结合使用。

业务逻辑极其简单的时候(比如只需要对多个表查询数据),直接用 xml 或者注解写。

需要实现增删改查的时候,继承 MyBatis-Plus 的通用类。

如果有其他需要实现的函数,在通用类的基础上增加:

  • Service 层增加对应的函数
  • 涉及到与数据库的交互时,在 Dao 层增加函数

除此之外,还学了些零碎的东西:

  • 常量、公共函数,在 Common... 的函数里面写好,然后在用到的时候调用

  • utils 下的函数要仔细看看,里面肯定有开发中要用到的工具包。

    比如:接口的返回值类型 Result ,文件上传工具类 FileUpload ,分页工具类 PageUtils ,获取 UserIdUserInfoUtil ...

    名字可能有所差别,但功能类似,也不用我们自己实现。

  • ...

之后,继续学习吧,希望有一天能写出干净简洁的代码。

此文章已被阅读次数:正在加载...更新于

请我喝[茶]~( ̄▽ ̄)~*

Sycamore /wechatpay.png

/wechatpay.png

Sycamore /alipay.png

/alipay.png