最近在自学 springboot 和 mybatis,小白有点问题想请教大家

2019-05-16 22:42:35 +08:00
 epicq

Ⅰ、entity、domain、pojo,有啥区别?各自都在什么情况下使用? (感觉虽然概念上有些区别,但是看很多项目是随便用的)

Ⅱ、目前 spring 用 xml 还是注解多一点? (是不是新的 springboot 项目用注解,老的 springframework 项目用 xml ?目前行业一般用什么?)

Ⅲ、mybatis 用 xml 还是注解? ( xml 很反人类啊,而且还要搞个 mapper.xml ,我现在都是直接在 DAO 层直接 @mapper,然后 @Insert 等等)

Ⅳ、举个例子

[前端发送的 json ] : { "carInfo": { "load": "1", "price": "2", }, "newSites": [ { "siteName": "AAA", "siteId": "1234" }, { "siteName": "BBB", "siteId": "3212" } ] }

[ controller ] : @RequestBody SitesInfo sitesInfo

[ domain ] : class SitesInfo(){ private CarInfo carInfo; private List<newsites> newSites; private int id; ......getter and setter...... }</newsites>

[ dao ] : @Insert("insert into table (newSites, carInfo) values(#{newSites}, #{carInfo})") @Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id") int insert(SitesInfo sitesInfo);

这样就有问题,好像是 type handler 不匹配?

目前想到的解决方案: 1、自定义一个 type handler ?可行吗? 2、搞一个 SitesInfoHelp

class SitesInfoHelp(){ private String sitesInfo; private int id;

public String getSitesInfo() {
    return sitesInfo;
}
public void setSitesInfo(SitesInfo sitesInfo) {
    this.sitesInfo = sitesInfo.toString();
}

}

然后 @Insert("insert into table (sitesInfo) values(#{sitesInfo})") @Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id") int insert(SitesInfoHelp sitesInfoHelp);

这样就可以了,同时需要各项数据的话,可以很轻松的 sitesInfo.getXXX

[那么问题来了] 1、哪一种方式更好? 2、是根据 json 结构设置 domain 结构?还是拿到 json 解析成自定义的 Object ?但是 @RequestBody 自动就变成了 Object 啊 3、像上面的 type handler 不匹配正确的解决方式是? 4、有没有其他更优雅的方式?

Ⅴ、要找工作的话,springboot 要学到什么程度?面试造航母,我很心虚啊 QAQ

1515 次点击
所在节点    问与答
5 条回复
epicq
2019-05-16 22:43:19 +08:00
怎么编辑的时候排好的版,现在全乱了 QAQ
oneisall8955
2019-05-17 03:45:51 +08:00
1,网上解释这几个基本说是有区别,但是项目上基本也是 entity,domain,pojo 随便建起来,都是用作持久层的对象的包名称。。。看项目习惯吧。但是 VO,DTO 还是比较统一的
2 ! springboot 用起来最大的特点就是注解很多,xm 基本没有 xml 的存在了,老的 ssm,ssh,xml 满天飞
3,简单用注解,复杂用 xml
4,mybatis 太久没用了,jpa 用的比较多,这个不清楚你的问题是啥。。。
5,找工作,按照经验,你不用会 springboot 都无所谓,会以前的 ssm 就行了,更直白的就是你理解 spring 在三层结构的地位,以及这三层怎么用就行了。感觉基础更加重要,如面向对象的特性的理解(设计模式),或者多线程,锁,数据结构算法,数据库原理,http 中的 TCP/IP 协议等这些才是重要内容
yinzhili
2019-05-17 13:57:51 +08:00
有一个好东西叫做 mybatis-generator。基本的 CRUD 代码都可以生成。自定义的就自己写。
jack80342
2019-05-22 14:41:33 +08:00
你可以看看😀我翻译的 Spring Boot Reference Guide 2.0.0.RELEASE 的文档。
jack80342
2019-05-22 14:41:58 +08:00
这是链接:github.com/jack80342

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/564870

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX