jeesite学习笔记——主从表及表间传值(一对多)

一,自动生成框架:

*注意要在生成表前,要在jeesite.properties文件中修改数据库  用户名和密码,同时修改最后一行的文件生成路径,每一个符号(:和\)前加\

如图1所示,设计两张表:

1.设计两张表

tob_casetob_logistics

2. tob_case  是父表,

   tob_logistics 是子表

子表调用父表的数据,不能改变父表的任何内容

4.调用数据的所有操作都在子表的代码中进行

2,代码自动生成:(图片可点击放大)

父表
子表

1.代码生成模块

2.业务表配置

3.业务表添加

4.添加需要生成的数据表

1.更改说明为表头,

2.如果有父表就更改,没有就不改

3.子表中要添加父表表名和外键

4.修改外键的Java的属性名称为父表中连接的字段

1.在一对多中,如果需要在系统页面中显示子表的信息,则在生成方案中必须先添加子表的方案;

2.如果不需要显示子表信息,就不用天津爱子表方案;

3.在子表方案添加完成后就点击保存并生成代码

1.如果需要显示子表的信息,就必须先完成子表的生成代码,然后在生成父表的代码,注意模板分类要选择增删查改一对多

3,效果图:

二,表间传值(专业表a和学院表b):

注意:这里的学院名称和学院代码都有具体内容

这里的专业名称和专业代码都有具体内容,而学院编号是学院表的id

1.在a表信息添加页面中通过下拉框调取b表的数据

      效果截图:

1.1 由于a表中的“学院编号”存的是b表的id,而这里要通过id调取b表中“学院编号”数据,需要在实体表中添加一个变量用于接收这个“学院编号”数据值

1.2 在sql文件即dao.xml中与b表通过id建立连接,把b表的“学院编号”字段值传递给a的实体表的新增变量xydm

1.3 在a表的controller.java文件中,注入b表的service层,然后在页面请求(form)方法中,增加一个传值的方法

@Autowired
private DemoInstituteService demoInstituteService;

public String form(DemoMajor demoMajor, Model model) {
	DemoInstitute demoInstitute = new DemoInstitute();
	List<DemoInstitute> institute = demoInstituteService.findList(demoInstitute);
	model.addAttribute("institute", institute);	
	model.addAttribute("demoMajor", demoMajor);
	return "jeesite/demo/demoMajorForm";
}//	 在上表中,先实例化一个父类的对象,再通过父类对象的findlist方法传递参数

1.4 在a的form.jsp文件中,在需要调取b表值的DIV模块中增加联系 - 通过下拉框调取b表的传值而不是自己填写

<form:select path="schoolXydm" class="input-mini">
    <form:options items="${institute}" itemLabel="name" itemValue="id" htmlEscape="false" />
</form:select>

1.4.1  itemlabel属性值具体作用:(xydm和name都是b表数据库中的字段),指向b表中要调取的字段

1.5

1.5  此时页面中“学院编号”一栏显示的还是id值,需要在表单文件(list.java)中把传递的id值换成新增的变量xydm

2.在a表的表单页面中添加显示b表的数据内容

       截图:

1.由于a表的Java实体类文件和数据库中没有“学院名称”的变量,而页面要显示这个值就要在实体表中添加一个用于接收的变量

2.后面的步骤基本类似于上面的表间传值,同样都需要修改list、xml等文件的一些内容,以做到传值的效果,唯一多的一步就是在list中添加一个“学院名称”的栏目

list.java文件

 xml文件


1.From.jsp文件是列表信息“添加”和“修改”的文件,当需要修改和新增信息时,在此修改

2.List.jsp文件是前台页面显示文件,当对菜单的内容进行更改时,在此修改

3.Controller.java是控制文件,连接着前台和后台,里面是各种对前台页面的操作方法,如保存,获取,删除,导入,导出等,当需要对页面的功能进行变动是,在此修改

4.service.java是后台方法文件,存放着对数据的调取和保存、修改等方法

4.在菜单列表中添加父表传值字段时,所添加的字段必须要在子表中有接收值,例如要在子表主要的查询菜单中加入父表学院的学院名称,就要在子表的实体表中添加两个字段,一个用于接收,一个用于传值。不过一般不建议这样。可以在子表数据库中专门设置一个属性字段(例如instituteId)用来作为连接父表的传值,即外键。

表间连接的具体代码说明

1. 实体表(* .java 表)

此表中,schoolXydm 是用于存储数据库中实际存在的外键字段的值,用于和demo_institute 数据库表建立连接; Xydm 是实体表中用于传值的,是变量,其变量名可以随意取

2. 数据表(Dao.xml 表)

此表中,b.xydm AS“xydm” 是说将b 表的xydm 字段值(b 表中实际存在xydm 字段)赋予变量xydm (这个xydm 是实体表中建立的用于传值的变量),

左边加入demo_institute b on b.id = a.school_xydm 的作用是在表a 和表b 之间建立连接关系,这里的school_xydm 一个表中实际存在的字段,是外键,而id b 表的主键,两者之间建立关系之后,就可以在XML 表中调取b 表的具体数据,在这里就是调取b 表的xydm 数据

特殊条件连接如下:


3. 菜单列表(List.java

 

在第三处插入“学院编号”信息,然后下面相同位置给与传值信息

此处的$ {demoMajor.xydm }就是说调取实体表中变量xydm 的具体值,而由于在数据表中变量xydm 已经获取了具体的值的信息,此处就不是空值了

猜你喜欢

转载自blog.csdn.net/qq_41887223/article/details/81038462
今日推荐