本文主要讲,在若依系统中创建一个按钮,此按钮可以通过前端(html,css)+后端(controller,service,serviceImpi,mapper,mapper.xml)实现将数据表table1中的数据传入到数据表table2中。本文以设备巡检管里为例,
巡检管理模块包括:大胡巡检 inspection
当前巡检 inspection_new
l历史巡检 inspection_old

按钮功能说明:
在当前巡检页面添加两个按钮:开始巡检 和 完成巡检
点击开始巡检按钮后,大胡巡检中的数据就会导入当前巡检页面中,点击完成巡检按钮后,开始巡检中的数据就会导入历史巡检页面中。
按钮功能实现:
html:
首先在ispection_new.html文件中添加前端方法 newInpection() 如图
代码如下:
<a class="btn btn-warning" onclick="newInspection()">
<i class="fa fa-list"></i> 开始巡检
</a>
js方法如下:
/* 开始巡检 */
function newInspection() {
var url = ctx + 'inspection/inspection_new/newInspection/';
$.operate.submit(url, "post", "json", "");
}
controller:
然后在后端controller文件中写方法,代码如下:
/**
* 开始巡检
*/
@Log(title = "开始巡检", businessType = BusinessType.INSERT)
@PostMapping("/newInspection")
@ResponseBody
public AjaxResult newInspection(InspectionNew inspectionNewDemo)
{
return toAjax(inspectionNewService.insertNewInspection(inspectionNewDemo));
}
service:
在service文件中定义方法,代码如下:
/**
* 开始巡检
*
* @param inspectionNewDemo 开始巡检
* @return 结果
*/
public int insertNewInspection(InspectionNew inspectionNewDemo);
serviceimpl:
/**
* 查询当前巡检列表
*
* @param inspectionNewDemo 当前巡检列表
* @return 当前巡检列表
*/
@Override
public int insertNewInspection(InspectionNew inspectionNewDemo) {
return inspectionNewMapper.insertNewInspection(inspectionNewDemo);
}
mapper:
/**
* 查询当前巡检列表
*
* @param inspectionNewDemo 当前巡检业务
* @return 当前巡检集合
*/
public int insertNewInspection(InspectionNew inspectionNewDemo);
mapper.xml:
<insert id="insertNewInspection" parameterType="InspectionNew" useGeneratedKeys="true" keyProperty="id">
Insert ignore into inspection_new select * from inspection
</insert>
注意:此处使用的是 Insert ignore into ... ,是因为本人创建的inspection表和inspection_new表的主键命名是相同的,添加 ignore 是为了防止主键一致冲突而造成报错,报错如下图:
若两个数据库表的主键不一致,则仍可使用 Insert into ....
完成巡检按钮功能的实现代码与开始巡检按钮功能的实现代码基本一致,本文就不再书写。
本人第一次写这样的文章,第一是为了总结此次的经验,加强自己解决问题的思路;因为过程中总会遇到一些错误,这些错误我当时是如何解决的,以后遇到类似错误,又应该以怎样的思路去解决,这种思路是我要学习和掌握的,而不是只有下次遇到一模一样的问题才能解决。第二也是为了帮助大家,若大家要做类似的功能,可以参考我的思路。说实话,有参考可比自己一个人默默的想舒服多了,本人深感体会。