我的项目构造

服务端

客户端

映射文件

依据零碎调用程序,理论开发会由后端向前端开发

客户端向服务端发动申请

$(()=>{//jquery中提供的页面加载实现当前要执行的函数 doLoadUI("load-user-id","user/user_list")  doLoadUI("load-dept-id","dept/dept_list")  doLoadUI("load-role-id","role/role_list")  doLoadUI("load-menu-id","menu/doMenuUI")  doLoadUI("load-log-id","log/doLogUI");})

点击分页查问

进行初始化模块页面
user_list.html

$(document).ready(function(){ $("#pageId").load("doPageUI",function(){  doGetObjects(); }); $(".input-group-btn") .on("click",".btn-search",doQueryObjects) .on("click",".btn-add,.btn-update",doLoadEditUI); $("tbody").on("click",".btn-valid",doValidById);});

doLoadEditUI办法判断所点击的事件

function doLoadEditUI(){ //1.断定点击的对象 var title; if($(this).hasClass("btn-add")){  title="增加用户";  doLoadPage(title); }else if($(this).hasClass("btn-update")){  title="批改用户";  var id=doGetCheckedId();  console.log("id="+id)  if(!id){  alert("请先抉择");  return;  }  //基于id进行查问并加载编辑页面 doFindObjectById(id,title); }}

触发“增加用户” 按钮事件

function doLoadPage(title){ var url="user/user_edit" $("#mainContentId").load(url,function(){  $(".box-title").html(title); }) }

获取url为user/user_edit

user_edit.html

初始化页面和事件注册

$(document).ready(function(){ //页面加载实现当前加载角色信息并初始化页面 doLoadRoles(); //事件注册 $(".box-footer") .on("click",".btn-cancel",doCancel) .on("click",".btn-save",doSaveOrUpdate);   $("#treeLayer")  .on("click",".btn-cancel",doHideTree)  .on("click",".btn-confirm",doConfirm);  $(".form-horizontal") .on("click",".load-sys-dept",doLoadZTreeNodes);});

点击“增加”按钮 触发doSaveOrUpdate办法

function doSaveOrUpdate(){ var rowData=$("#mainContentId").data("rowData"); //1.获取表单数据 var params=doGetEditFormData(); if(rowData)params.id=rowData.user.id; //2.发动异步申请 var insertUrl="user/doSaveObject"; var updateUrl="user/doUpdateObject"; var url=rowData?updateUrl:insertUrl; console.log(params); $.post(url,params,function(result){    if(result.state==1){       alert(result.message);       doCancel();    }else{      alert(result.message);    } })}

调用url为--user/doSaveObject

**浏览器向服务端发动post申请
spring框架会在管制层中主动找到映射地址为user/doSaveObject的办法**
管制层SysUserController.java

controller类中调用服务层的办法来实现业务并返回数据
服务层:SysUserService.java

这个servie接口定义了实现业务的办法
并且被实现类SysUserServiceImpl.java实现,增加具体实现内容。
SysUserServiceImpl.java

实现类中首先对浏览器中发来的申请数据进行校验,是否合乎业务需要,否则抛出异样。
而后对业务数据进行封装提交

int rows=sysUserDao.insertObject(entity);//3.保留用户角色关系数据sysUserRoleDao.insertObjects(entity.getId(), roleIds);

调用Dao(mapper文件)接口中的插入数据的办法进行数据保留
Mapper文件:SysUserDao.java

接口中的insert办法会把数据封装到SysUser对象中 并通过SysUserMapper.xml映射文件中sql语句把数据保留到数据库
Pojo类 :SysUser.java

Mapper映射:SysUserMapper.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.cy.pj.sys.dao.SysUserDao">    <update id="updatePassword">        update sys_users        set password=#{password},            salt=#{salt},            modifiedTime=now()        where id=#{id} </update>    <update id="updateObject" parameterType="com.cy.pj.common.pojo.SysUser">        update sys_users        set username=#{username},            mobile=#{mobile},            email=#{email},            deptId=#{deptId},            modifiedTime=now(),            modifiedUser=#{modifiedUser} where id=#{id} </update>    <select id="findObjectById" parameterType="int" resultMap="sysUserDept">    select *    from sys_users    where id=#{id} </select>    <insert id="insertObject" parameterType="com.cy.pj.common.pojo.SysUser" useGeneratedKeys="true" keyProperty="id">        insert into sys_users      (username,password,deptId,email,mobile,salt,valid,      createdTime,modifiedTime,createdUser,modifiedUser)      values    (#{username},#{password},#{deptId},#{email},#{mobile},#{salt},#{valid},      now(),now(),#{createdUser},#{modifiedUser})    </insert>

namespace 示意该文件所映射的Dao接口所在位置
mybatis会主动找id为insertObject的sql语句
语句中采纳rest格调的参数写法动静增加参数进行sql操作
数据保留到数据库中之后
前端页面会进行异步更新数据

业务实现

PS

  • 服务层进行参数校验时的异样抛出能够自定义一个全局异样类
  • pojo对象类中能够应用@Data注解,框架主动增加setter,getter办法,不过要先装置lombok插件
  • Dao接口类记得增加@Mapper注解 让框架来主动治理映射 要不然.xml文件中写的namespace也是有效的
  • 服务层增加@Service注解,示意交给Spring框架治理
@Servicepublic class SysUserServiceImpl implements SysUserService {    @Autowired private SysUserDao sysUserDao;    @Autowired private SysUserRoleDao sysUserRoleDao;

在类中应用@Autowired 主动进行对象创立(DI注入)

  • 管制层的@RestController=@Response+@Controller 示意交给spring框架治理,并且返回return的信息