1. 业务需求
- 人的信息person(name,age,gender)
- 把(“jack”, 25, ‘男’)这条信息插入数据库
2. 不用架构怎么做?
- 一个User类、一个连接类即可,App此处代表操作数据的视图,看起来是不是很简洁
- 问题是,如果我要换个数据库连接,那么源代码就得改变,各个类之间的耦合性非常高,牵一发而动全身,代码的扩展性、健壮性不好;
3. 使用架构、框架
- maven + spring-context + mvc架构
- 有什么业务需求,直接使用对应的service对象去解决,service就是负责业务逻辑
- service内含dao对象作为属性,具体处理业务方法的参数列表中往往是domain层的对象,他就起到一个承上启下的功能,service从不考虑业务具体实现细节,它只考虑在逻辑上,应该整合哪些类来完成一个业务;
- domain层包含哪些与数据库中表一一对应的那些实体类,例如user、player,也可以做一些数据过滤的逻辑事务,毕竟给实体对象的属性赋值是依靠domain对象的构造器或者setter
- dao是持久层,负责与数据库的联络,一般会是接口+实现类的模式,因为要连接的数据库不止一种,但是一个业务实现逻辑只有一个,这就完美符合【一个接口+多个实现类】的模式,其中多个实现类主要是不同种类的数据库造成的;
- 再把这个架构融入spring容器中,把service、dao层的对象交给spring容器去创建,代码中只面向接口编程,到时候要切换不同的数据库,可以在pring配置文件中修改或配置,代码不需要改动