EasyUI 高级控件 之 增删查改

本文介绍了如何使用EasyUI进行增删查改操作,包括DataGrid布局、Dialog和Form的使用,以及通用操作方法。通过JsonBaseDao、UserDao和UserAction实现dao和web层的支持,利用jsp界面和自定义js实现交互。同时,讨论了前后端分离的优势,并提供了路径处理和主键设置的建议。
摘要由CSDN通过智能技术生成

EasyUI 高级控件

前言:

现如今,大部分的项目都是采用了前后端分离的方法,那么,为什么要采用前后端分离呢?这样做有什么优势呢?

让我们来对比分析一下之前的开发模式与前后端分离模式的区别 。

陈旧的开发模式:

美工(ui工程师:编写项目模型)

java工程师:将原有的html转成jsp,动态展示数据

缺点:
	客户需要调节前端的展示效果 (样式美化)
	
	解决:由美工去重新排版,重新选色。

前后端分离:

美工、java工程师都是独立工作的,彼此之间在开发过程中没有任何交际 。
但是,要在开发前约定数据交互的格式。

美工:只管展示 tree_data1.json

java工程师的工作:写方法返回数据,如:tree_data1.json

EasyUI的crud

增、删、改思路分析

具体思路:

增加、删除、修改 我都是用的form表单传值,在jsp界面,定义一个隐藏传值①,在具体调用哪个方法的时候,给这个①设置值(add、del、edit);

删除和修改,需要选中某一行,从而对该行的数据进行操作,所以,可以先判断是否有某一行被选中,如果没有,就弹个提示框提示一下,有的话就进行操作;

增加的时候,因为都是用一个弹出对话框,所以,调用该的时候,首先要先清除弹出对话框form表单里面的内容;

删除的时候,因为只需要传一个参数ID,所以弹出框可以不必要展示出来 ;

form表单提交后,就可以关闭弹出框、并刷新表单数据、清空弹出框的信息即可 。

注意:

  • 为避免出现不必要的路径错误,建议大家用绝对路径,先在jsp界面定义隐藏域传值( < input type=“hidden” id=“mypath” value="${pageContext.request.contextPath }"> ),然后,在自定义js界面拼接即可 ( $("#mypath").val() )。

  • 数据库中的主键最好用int类型,并设置自动增加 。


DataGrid、dialog、form讲解

DataGrid 布局

可使用Javascript去创建DataGrid控件(除此之外,还有另外的方法,) 。

userManage.jsp
jsp
userManage.js
js
效果展示:
效果


Dialog 布局

DIalog

Form 布局

form


通用操作方法

JsonBaseDao
package com.dj.util;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class JsonBaseDao extends BaseDao<Map<String,Object>> {
   
	/**
	 * 通用分页查询方法
	 * 
	 * @param sql
	 * @param pageBean
	 * @return
	 * @throws SQLException
	 * @throws InstantiationException
	 * @throws IllegalAccessException
	 */
	public List<Map<String,Object>> executeQuery(String sql, PageBean pageBean) throws SQLException, InstantiationException, IllegalAccessException{
   
		return super.executeQuery(sql, pageBean, new Callback<Map<String,Object>>() {
   
			@Override
			public List<Map<String,Object>> foreach(ResultSet rs) throws SQLException, InstantiationException, IllegalAccessException {
   
				/*
				 * 1、创建一个实体类的实例
				 * 2、给创建的实例属性赋值
				 * 3、将添加完类容的实体类添加到list集合中
				 */
//				list.add(new Book(rs.getInt("bid"), rs.getString("bname"), rs.getFloat("price")));
				List<Map<String,Object>> list = new ArrayList<>();
//				获取源数据
				ResultSetMetaData md = rs.getMetaData();
				int count = md.getColumnCount();
				Map<String,Object> map = null;
				while(rs.next()) {
   
					map = new HashMap<>();
					for (int i = 1; i <= count; i++) {
   
						map.put(md.getColumnName(i), rs.getObject(i));
					}
					list.add(map);
				}
				return list;
			}
		});
	}
	
	/**
	 * 通用增删改方法
	 * 
	 * @param sql
	 * @param attrs	map中的key
	 * @param paMap	jsp向后台传递的参数集合
	 * @return
	 * @throws SQLException
	 * @throws NoSuchFieldException
	 * @throws SecurityException
	 * @throws IllegalArgumentException
	 * @throws IllegalAccessException
	 */
	public int executeUpdate(String sql, String[] attrs, Map<String,String[]> paMap) throws SQLException, NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
   
		Connection con = DBAccess.getConnection();
		PreparedStatement pst = con.prepareStatement(sql);
		for (int i = 0; i < attrs.length; i++) {
   
			pst.setObject(i+1, JsonUtils.getParamVal(paMap, attrs[i]));
		}
		return pst.executeUpdate();
	}
}

dao 层

UserDao
package com.dj.dao;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import com.dj.util.JsonBaseDao;
import com.dj.util.JsonUtils;
import com.dj.util.PageBean;
import com.dj.util.StringUtils;

public class UserDao extends JsonBaseDao {
   
	
	/**
	 * 登录
	 * 
	 * 登录查询用户表 t_easyui_user_version2
	 * @param paMap 传值
	 * @param pageBean 是否分页
	 * @return
	 * @throws SQLException 
	 * @throws IllegalAccessException 
	 * @throws InstantiationException 
	 */
	public List<Map<String, Object
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值