数据库一般分为三层的结构:
1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。
2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等。
我们在表现层里面用户输入需要查询的内容;然后由业务逻辑层决定用哪种方式访问数据库。(可以用sql直接访问;可以用存储过程访问;也可以使用程序访问数据库)。
在《阿里巴巴的java编码规范》中要求禁止使用存储过程,因为存储过程难以调试和扩展,更没有移植性。但是我认为这个应该根据使用场景来决定,主要原因是Mysql数据库对于复杂查询性能优化支持不够,使用mysql数据库的更倾向于将业务扩及放在语言端实现;而sql server和oracle则对于存储过程支持的很好,数据库工程师更倾向于将业务逻辑放在存储过程中实现。