数据表联合查询与dao类

学生与班级可以是多对多的关系,那就可以抽离一张学生班级表,dao类正常对应的是对应一张表,对一张表进行操作。如果联合查询那应该怎么办,对两张表进行操作,该怎么办

javaweb中mvc三层架构(dao,service,controller),如果dao和service包存放的都是接口,而这些包下有对应的实现类,如果你使用mysqbtis,则可以配置xml代替dao包下的实现类,否则需要写dao包下接口的实现类,而这个实现类就是通过jdbc操作数据库,里面编写方法,不管是单表查询还是多表查询从某种意义上来说和Java代码没关系,本质其实就是通过sql命令,两表或者三表之间通过left join进行链接即可,至于写在哪个dao包下的接口里,这个通常是以查询那个为主,就写到哪个接口里,比如说查询所有的学生和班级你可以这样理解
1.查询所有的学生,顺带查询学生所对应的班级(这样你可以写在StudentDao里面)
2.查询所有的班级,顺带查询班级下的所有学生(这样你可以写在ClazzDao里面)

正常表设计中,学生与班级应该是多对一的关系。
联合查询,关键在于建立表之间的关联关系。
学生表中存储班级字段。通过班级字段和班级表建立关联。

自定义dao方法用联表查询的sql获取

每张表会定义一个主键,多表操作就是将主键进行关联,就可实现多表关联查询。
你要做的就是将班级表中的主键存入到学生表中,查询的时候就可以直接查学生表,通过学生表中的班级主键进而查出班级信息,依此类推,多表查询也是如此....
多对多的查询最好是设计一张中间表,从中间表中查询,中间表只需存其他需要关联的表对应的主键,然后加一个本表的主键id即可