文章目錄
- Role角色的CRUD
- 1. export_domain子工程Role角色類
- 2. export_system_service子工程撰寫測驗類測驗角色的CRUD
- 3. export_system_service子工程的service介面和實作類
- 4. export_dao子工程寫dao介面及其映射
- 5. 測驗業務功能CRUD(沒問題就進行頁面開發)
- 6. export_web_manager子工程撰寫controller
- 7. export_web_manager子工程撰寫jsp頁面
Role角色的CRUD



1. export_domain子工程Role角色類
//角色類
public class Role {
private String roleId;
private String name;
private String remark;
private long orderNo;
private String createBy;
private String createDept;
private Date createTime;
private String updateBy;
private Date updateTime;
//不同的公司使用不同的角色,但都放在同一表里面,區分的方式
private String companyId;
//每條記錄 通過companyId,companyName指定所屬
private String companyName;
}
2. export_system_service子工程撰寫測驗類測驗角色的CRUD
TestRoleService
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath*:spring/applicationContext-*.xml")
public class TestRoleService {
private static final Logger l = LoggerFactory.getLogger(TestRoleService.class);
@Autowired
IRoleService iRoleService;
//測驗角色分頁顯示
@Test
public void test01(){
//分頁串列
//頁面上顯示分頁串列,就要求業務方法中提供查詢PageInfo的方法
PageInfo<Role> pi= iRoleService.findByPage(1,3,"1");
l.info("分頁角色 pi = "+pi);
}
//測驗添加角色
@Test
public void test02(){
//將一個表單資料保存在javaBean中,再將javaBean存到資料庫
Role role = new Role();
role.setName("save添加角色");
role.setRemark("save添加角色 - 備注");
role.setCompanyId("1");
role.setCompanyName("吉首大學");
iRoleService.saveRole(role);
}
//測驗更新角色
@Test
public void test03(){
//更新業務 先根據id查找出對應的一條記錄,編輯它的值,再將記錄保存到資料庫中
String roleId="e7313d5b-993e-452a-a5ac-a2bdd935d0f0";
//查找
Role role = iRoleService.findById(roleId);
l.info("role="+role);
//修改
role.setName("更新角色name");
role.setRemark("更新角色remark備注");
//保存
iRoleService.updateRole(role);
}
//測驗通過id洗掉角色
@Test
public void test04(){
//洗掉業務,就是根據指定的id,洗掉資料庫中的記錄
String roleId="e7313d5b-993e-452a-a5ac-a2bdd935d0f0";
//洗掉
iRoleService.deleteRole(roleId);
}
}
3. export_system_service子工程的service介面和實作類
IRoleService
//角色業務類
public interface IRoleService {
//查找素有角色,并分頁顯示 參1:當前頁 參2:每頁資料大小 參3:公司id
PageInfo<Role> findByPage(int curr, int pageSize, String companyId);
//通過id查找角色
Role findById(String roleId);
//保存角色
void saveRole(Role role);
//更新角色
void updateRole(Role role);
//洗掉角色
void deleteRole(String roleId);
}
RoleServiceImpl
@Service
public class RoleServiceImpl implements IRoleService {
@Autowired
IRoleDao iRoleDao;
@Override
public PageInfo<Role> findByPage(int curr, int pageSize, String companyId) {
//設定分頁引數
PageHelper.startPage(curr,pageSize);
//呼叫全查
List<Role> list = iRoleDao.findAll(companyId);
//包裝成PageInfo發送給前臺jsp
PageInfo<Role> pi = new PageInfo<>(list);
return pi;
}
@Override
public void saveRole(Role role) {
String uuid= UUID.randomUUID().toString();
role.setRoleId(uuid);
iRoleDao.save(role);
}
@Override
public Role findById(String roleId) {
return iRoleDao.findById(roleId);
}
@Override
public void updateRole(Role role) {
iRoleDao.update(role);
}
@Override
public void deleteRole(String roleId) {
iRoleDao.deleteById(roleId);
}
}
4. export_dao子工程寫dao介面及其映射
IRoleDao
//角色dao
public interface IRoleDao {
List<Role> findAll(String companyId);
void save(Role role);
Role findById(String roleId);
void update(Role role);
void deleteById(String roleId);
}
IRoleDao.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.xgf.dao.system.role.IRoleDao">
<!-- resultType 指定一個java型別,要求表的欄位與變數的名稱一致
resultMap 適用表欄位和類屬性名不一致的情況(還有一對一、一對多)
column是資料庫表欄位 property是類的屬性名稱
-->
<resultMap id="roleMap" type="role">
<id column="role_id" property="roleId" />
<result column="name" property="name" />
<result column="remark" property="remark" />
<result column="order_no" property="orderNo" />
<result column="create_by" property="createBy" />
<result column="create_dept" property="createDept" />
<result column="create_time" property="createTime" />
<result column="update_by" property="updateBy" />
<result column="update_time" property="updateTime" />
<result column="company_id" property="companyId" />
<result column="company_name" property="companyName" />
</resultMap>
<!-- 查詢所有角色,通過order_no(升序)排序 -->
<select id="findAll" parameterType="string" resultMap="roleMap">
select * from pe_role where company_id=#{companyId} order by order_no
</select>
<!-- 增加一個角色 -->
<insert id="save" parameterType="role">
insert into pe_role
(
role_id ,
name ,
remark ,
order_no ,
create_by ,
create_dept ,
create_time ,
update_by ,
update_time ,
company_id ,
company_name
)
values
(
#{roleId },
#{name },
#{remark },
#{orderNo },
#{createBy },
#{createDept },
#{createTime },
#{updateBy },
#{updateTime },
#{companyId },
#{companyName }
)
</insert>
<!-- 通過id查找角色 -->
<select id="findById" parameterType="string" resultMap="roleMap">
select * from pe_role where role_id=#{roleId}
</select>
<!-- 更新角色資訊 -->
<update id="update" parameterType="role">
update pe_role set
name = #{name },
remark = #{remark },
order_no = #{orderNo },
create_by = #{createBy },
create_dept = #{createDept },
create_time = #{createTime },
update_by = #{updateBy },
update_time = #{updateTime },
company_id = #{companyId },
company_name = #{companyName}
where role_id = #{roleId}
</update>
<!-- 通過id洗掉角色 -->
<delete id="deleteById" parameterType="string">
delete from pe_role where role_id=#{roleId}
</delete>
</mapper>
5. 測驗業務功能CRUD(沒問題就進行頁面開發)
5.1 測驗查詢角色分頁顯示功能的findByPage方法

5.2 測驗增加角色的添加方法saveRole

添加成功:

5.3 測驗更新角色的更新方法updateRole(先查詢資料回顯后更新資料)

更新成功

5.4 測驗洗掉角色的洗掉方法deleteRole

6. export_web_manager子工程撰寫controller
RoleController
繼承基類BaseController,因為每個公司的角色不同,顯示角色資料不同,BaseController就是登錄公司標識(當前默認id=1的公司)
@Controller
@RequestMapping("/system/role")
public class RoleController extends BaseController {
//記錄日志
private static final Logger l = LoggerFactory.getLogger(RoleController.class);
@Autowired
IRoleService iRoleService;
//角色分頁顯示
@RequestMapping(path="/toList",method ={ RequestMethod.GET, RequestMethod.POST})
public String toList(@RequestParam(defaultValue = "1") int curr, @RequestParam(defaultValue = "10")int pageSize){
//調查詢分頁串列的方法,如果沒有傳遞分頁引數默認第一頁,每頁10條資料
PageInfo<Role> pi = iRoleService.findByPage(curr, pageSize, getLoginCompanyId());
//將pi傳給jsp頁面
request.setAttribute("pi",pi);
return "system/role/role-list";
}
//去角色增加頁面
@RequestMapping(path="/toAdd",method ={ RequestMethod.GET, RequestMethod.POST})
public String toAdd(){
return "system/role/role-add";
}
//添加角色
@RequestMapping(path="/add",method ={ RequestMethod.GET, RequestMethod.POST})
public String add(Role role){//接收頁面提交過來的表單
l.info("add role=" + role);
role.setCompanyId(getLoginCompanyId());
role.setCompanyName(getLoginCompanyName());
iRoleService.saveRole(role);
//添加成功
return "redirect:/system/role/toList";
}
// 更新回顯頁面 ${path}/system/role/toUpdate?roleId=${o.roleId}
@RequestMapping(path="/toUpdate",method ={ RequestMethod.GET, RequestMethod.POST})
public String toUpdate(String roleId){//需要使用引數接收提交的 roleId
Role role = iRoleService.findById(roleId);
l.info("toUpdate role="+role);
//回顯到頁面
request.setAttribute("role",role);
return "system/role/role-update";
}
//更新角色 action="${path}/system/role/update"
@RequestMapping(path="/update",method ={ RequestMethod.GET, RequestMethod.POST})
public String update(Role role){//需要接收編輯頁面提交的表單資料
l.info("update role="+role);
//更新角色
//重新設定companyId companyName(不能更改登錄的公司資訊 - 角色從屬與公司,不同公司不同角色,不能更改為其他公司的)
role.setCompanyId(getLoginCompanyId());
role.setCompanyName(getLoginCompanyName());
iRoleService.updateRole(role);
return "redirect:/system/role/toList";
}
// 洗掉角色ajax異步提示 ${path}/system/role/delete?roleId='+id; {code:200,msg:'洗掉成功',data:null}
@RequestMapping(path="/delete",method ={ RequestMethod.GET, RequestMethod.POST})
@ResponseBody
public Object delete(String roleId){//引數接收頁面js提交過來的roleId
try {
iRoleService.deleteRole(roleId);
//成功
return Msg.init(200,"角色編號【roleId = " + roleId + "】的角色洗掉成功",null);
} catch (Exception e) {
e.printStackTrace();
//失敗
return Msg.init(-200,"角色編號【roleId = " + roleId + "】的角色洗掉失敗",null);
}
}
}
7. export_web_manager子工程撰寫jsp頁面
role-list.jsp
<!--工具列-->
<div class="pull-left">
<div class="form-group form-inline">
<div class="btn-group">
<button type="button" class="btn btn-default" title="新建" onclick='location.href="${path}/system/role/toAdd"'><i class="fa fa-file-o"></i> 新建</button>
<button type="button" class="btn btn-default" title="洗掉" onclick='deleteById()'><i class="fa fa-trash-o"></i> 洗掉</button>
<button type="button" class="btn btn-default" title="重繪" onclick="window.location.reload();"><i class="fa fa-refresh"></i> 重繪</button>
<button type="button" class="btn btn-default" title="權限" onclick="findModuleByRoleId()"><i class="fa fa-users"></i> 權限</button>
</div>
</div>
</div>
<!--資料串列-->
<table id="dataList" class="table table-bordered table-striped table-hover dataTable">
<thead>
<tr>
<th class="" style="padding-right:0px;">
<input type="checkbox" name="selid" onclick="checkAll('id',this)">
</th>
<th class="sorting">序號</th>
<th class="sorting">編號</th>
<th class="sorting">名稱</th>
<th class="sorting">說明</th>
<th class="text-center">操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${pi.list}" var="o" varStatus="status">
<tr class="odd" onmouseover="this.className='highlight'" onmouseout="this.className='odd'" >
<td><input type="checkbox" name="roleId" value="${o.roleId}"/></td>
<td>${status.index+1}</td>
<td>${o.roleId}</td>
<td><a href="${path}/system/role/toUpdate?roleId=${o.roleId}">${o.name}</a></td>
<td>${o.remark}</td>
<th class="text-center"><button type="button" class="btn bg-olive btn-xs" onclick='location.href="${path}/system/role/toUpdate?roleId=${o.roleId}"'>編輯</button></th>
</tr>
</c:forEach>
</tbody>
</table>
<%-- 分頁資訊 --%>
<div class="box-footer">
<jsp:include page="../../common/page.jsp">
<jsp:param value="${path}/system/role/toList" name="pageUrl"/>
</jsp:include>
</div>
role-add.jsp
<form id="editForm" action="${path}/system/role/add" method="post">
<div class="tab-pane active" id="tab-form">
<div class="row data-type">
<div class="col-md-2 title">角色名</div>
<div class="col-md-10 data">
<input type="text" class="form-control" placeholder="角色名" name="name" value="${role.name}">
</div>
<div class="col-md-2 title">備注</div>
<div class="col-md-10 data line-height36">
<input type="text" class="form-control" placeholder="備注" name="remark" value="${role.remark}">
</div>
<div class="col-md-2 title"></div>
<div class="col-md-10 data text-center">
<%-- 提交表單 --%>
<button type="button" onclick='document.getElementById("editForm").submit()' class="btn bg-maroon">保存</button>
<button type="button" class="btn bg-default" onclick="history.back(-1);">回傳</button>
</div>
</div>
</div>
</form>
role-update.jsp
<form id="editForm" action="${path}/system/role/update" method="post">
<input type="hidden" name="roleId" value="${role.roleId}">
<div class="tab-pane active" id="tab-form">
<div class="row data-type">
<div class="col-md-2 title">角色名</div>
<div class="col-md-10 data">
<input type="text" class="form-control" placeholder="角色名" name="name" value="${role.name}">
</div>
<div class="col-md-2 title">備注</div>
<div class="col-md-10 data line-height36">
<input type="text" class="form-control" placeholder="備注" name="remark" value="${role.remark}">
</div>
<div class="col-md-2 title"></div>
<div class="col-md-10 data text-center">
<button type="button" onclick='document.getElementById("editForm").submit()' class="btn bg-maroon">保存</button>
<button type="button" class="btn bg-default" onclick="history.back(-1);">回傳</button>
</div>
</div>
</div>
</form>
洗掉的ajax
<script>
function deleteById() {
var id = getCheckId()
if(id) {
if(confirm("你確認要洗掉此條記錄嗎?")) {
// location.href="/system/role/delete?id="+id; //非ajax請求
//使用ajax請求
var url= '${path}/system/role/delete?roleId='+id;
var fn = function(result){ //{code:200,msg:'洗掉成功',data:null}
//彈出提示
alert(result.msg)
window.location.reload() //重新加載
}
$.get(url,fn,'json')
}
}else{
alert("請勾選待處理的記錄,且每次只能勾選一個")
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/204134.html
標籤:python
上一篇:cgb2007-京淘day06
