刚开始做Java项目,基本确定Spring MVC、Spring、Hibernate、Freemarker来做开发,现在有几个问题需要请教一下
1、接口是不是必须的,每个Dao、Service都需要写接口然后再写实现类吗,感觉这个地方的接口似乎有些多余
2、如果使用Hibernate做持久层,是不是可以很轻松的更换数据库,比如MySQL、PostgreSQL、Oracle
3、数据库相互的关系是使用外键建立联系还是用代码控制比较好
4、如果需要同时提供json接口,接口一般怎么进行处理比较好,如果用@ResponseBody输出会输出一些无用的东西,如果用Freemarker再做一套json的模板手写json格式似乎不太方便,不知道实际工作中一般用哪种方案
------解决思路----------------------
1、接口的应用相当于一个规范,用不用是你的事情,不过现在都成了定性,写dao service 习惯性加上了接口,看起来更规范,当然,也方便做自动注入
2、你用JDBC吧,各种兼容
3、看你需求了,如果需要强约束,就用外键吧,外键有个好处,可保持数据完整性
4、@ResponseBody 不一定是全部返还json格式,他只是将你的返回值当做object返回,应用场景很广泛的
------解决思路----------------------
1,你对所需要做的事情十分清楚的话,自己想怎么做都可以,不是很清楚的话就按照别人做好的现成的仿照,以免出问题。如果觉得重复的代码很多,可以自己写一个方法自动生成代码。
2,看需求和数据库的设计,比如说,有一个用户的对象,该用户有多个道具,后来某个道具在道具表里被删除了,那么你在设计表的时候,可以把人和道具那张表加一个道具是否失效的字段,删除道具表里某个道具的时候,同时把那个字段打上叉就行。这样就不需要设置外键。
4,写个方法自动拼出JSON,生成接口方法的代码
你web的那个问题,接口怎么开发跟你客户端采用的技术有关,如果你手机也是用HTML5和JS开发的,那和Web接口就一样。后台设计原则是,原始方法只设计一次,然后根据前台不同的平台,开发各种不同的接口程序,每种接口程序里统一调用你的原始方法。