天天看點

好好程式設計-物流項目15【基礎資料-分頁查詢和添加】

基礎資料

 項目中我們往往要用到很多資料量不大且不會經常變動的資料,比如部門資訊,付款方式,性别等資訊,如果這些資訊我們都單獨用一張表來維護,顯示不是很明智,是以我們可以将這一類資料統一存放在一張表中。通過資料結構來維護。如下:

好好程式設計-物流項目15【基礎資料-分頁查詢和添加】

 我們規定parent_id為null的表示類别資料,parent_id不為null則表示為該類型下的資料。

1.查詢基礎資料

left.jsp跳轉

好好程式設計-物流項目15【基礎資料-分頁查詢和添加】
建立Dto

public class BasicDataDto extends BasePage{

    public BasicData basic;

    public BasicData getBasic() {
        return basic;
    }

    public void setBasic(BasicData basic) {
        this.basic = basic;
    }
}      

建立IBasicService接口

public interface IBasicService {

    public List<BasicData> query(BasicData bd);
    
    public PageInfo<BasicData> queryPage(BasicDto dto);
    
    public void addBasicData(BasicData bd);
    
    public void deleteBasicData(int id);
    
    public void updateBasicData(BasicData bd);
}      

建立BasicServiceImpl

@Service
public class BasicServiceImpl implements IBasicService {
    
    @Resource
    private BasicDataMapper basicDataMapper;

    @Override
    public List<BasicData> query(BasicData bd) {
        BasicDataExample example = new BasicDataExample();
        
        return basicDataMapper.selectByExample(example );
    }

    @Override
    public PageInfo<BasicData> queryPage(BasicDataDto dto) {
        PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
        List<BasicData> list = this.query(dto.getBasic());
        return new PageInfo<>(list);
    }

    @Override
    public void addBasicData(BasicData bd) {
        basicDataMapper.insertSelective(bd);

    }

    @Override
    public void deleteBasicData(int id) {
        basicDataMapper.deleteByPrimaryKey(id);
    }

    @Override
    public void updateBasicData(BasicData bd) {
        basicDataMapper.updateByPrimaryKeySelective(bd);
    }

}      

建立BasicController

@Controller
@RequestMapping("/basic")
public class BasicDataController {

    @Resource
    private IBasicService basicService;
    
    @RequestMapping("/query")
    public String queryPage(BasicDataDto dto,Model model){
        PageInfo<BasicData> pageInfo = basicService.queryPage(dto);
        model.addAttribute("pageModel", pageInfo);
        return "basic/basic.jsp";
    }
}      

建立basic.jsp頁面,

好好程式設計-物流項目15【基礎資料-分頁查詢和添加】
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無标題文檔</title>
<link href="/css/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="/js/jquery.js"></script>

<script type="text/javascript">
    $(document).ready(function() {
        $(".click").click(function() {
            $(".tip").fadeIn(200);
        });

        $(".tiptop a").click(function() {
            $(".tip").fadeOut(200);
        });

        $(".sure").click(function() {
            $(".tip").fadeOut(100);
        });

        $(".cancel").click(function() {
            $(".tip").fadeOut(100);
        });

    });
</script>

</head>

<body>

    <div class="place">
        <span>位置:</span>
        <ul class="placeul">
            <li><a href="#">首頁</a></li>
            <li><a href="#">資料表</a></li>
            <li><a href="#">基本内容</a></li>
        </ul>
    </div>
    <div class="rightinfo">
        <div class="tools">
            <ul class="toolbar">
                <li class="click">
                    <a href="userUpdate">
                        <span>
                                <img src="/images/t01.png" />
                        </span>
                        添加
                    </a>
                </li>
                <li class="click"><span><img src="/images/t02.png" /></span>修改</li>
                <li><span><img src="/images/t03.png" /></span>删除</li>
                <li><span><img src="/images/t04.png" /></span>統計</li>
            </ul>
            <ul class="toolbar1">
                <li><span><img src="/images/t05.png" /></span>設定</li>
            </ul>
        </div>
        <table class="tablelist">
            <thead>
                <tr>
                    <th><input name="" type="checkbox" value="" checked="checked" /></th>
                    <th>編号<i class="sort"><img src="/images/px.gif" /></i></th>
                    <th>基礎資料</th>
                    <th>父節點</th>
                    <th>描述資訊</th>
                    <th>操作</th>
                </tr>
            </thead>
            <tbody>
                <c:forEach items="${pageModel.list }" var="basic">
                    <tr>
                        <td><input name="" type="checkbox" value="" /></td>
                        <td>${basic.baseId }</td>
                        <td>${basic.baseName }</td>
                        <td>${basic.parentId }</td>
                        <td>${basic.baseDesc }</td>
                        <td>
                            <a href="/user/userUpdate?id=${basic.baseId }" 
                            class="tablelink">修改</a> 
                            <a href="javascript:void(0)" onclick="deleteUser(${basic.baseId})" 
                            class="tablelink"> 删除</a></td>
                    </tr>
                </c:forEach>
            </tbody>
        </table>
            <div class="inline pull-right page" style="margin-top: 20px;">
                <form action="/user/queryPage" id="pager">
                    <input type="hidden" name="pageSize" id="pageSize" value="${pageModel.pageSize }">
                    <input type="hidden" name="pageNum" id="pageNum" value="${pageModel.pageNum }">
                </form>
                <jsp:include page="/pageBar.jsp"></jsp:include>
            </div>
    </div>
    <script type="text/javascript">
        $('.tablelist tbody tr:odd').addClass('odd');
        function deleteUser(userId){
            if(window.confirm("确定要删除該使用者嗎?")){
                location.href="/user/delete?id="+userId;
            }
        }
    </script>
</body>
</html>      

測試通路

好好程式設計-物流項目15【基礎資料-分頁查詢和添加】

2.添加基礎資料

 實作步驟和添加使用者差不多,我們快速實作效果。

好好程式設計-物流項目15【基礎資料-分頁查詢和添加】

IBasicService接口

public void getUpdateInfo(Integer id, Model m);      

BasicServiceImpl實作

@Override
public void getUpdateInfo(Integer id, Model m) {
    BasicDataExample example = new BasicDataExample();
    example.createCriteria().andParentIdIsNull();
    // 查詢所有的父類型
    List<BasicData> parents = basicDataMapper.selectByExample(example );
    m.addAttribute("parents", parents);
    if(id != null && id > 0){
        // 表示是更新資料,根據id查詢出對應的資料資訊
        BasicData data = basicDataMapper.selectByPrimaryKey(id);
        m.addAttribute("basic", data);
    }
}      

BasicDataController

@RequestMapping("/basicUpdate")
public String basicUpdate(Integer id,Model m){
    basicService.getUpdateInfo(id,m);
    return "basic/basicUpdate";
}      

頁面代碼

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無标題文檔</title>
<link href="/css/style.css" rel="stylesheet" type="text/css" />
<link href="/css/select.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript" src="/js/jquery.idTabs.min.js"></script>
<script type="text/javascript" src="/js/select-ui.min.js"></script>
<script type="text/javascript">
$(document).ready(function(e) {
    $(".select1").uedSelect({
        width : 345           
    });
    $(".select2").uedSelect({
        width : 167  
    });
    $(".select3").uedSelect({
        width : 100
    });
});
</script>
</head>
<body>
    <div class="place">
        <span>位置:</span>
        <ul class="placeul">
            <li><a href="/">首頁</a></li>
            <li><a href="/user/query">基礎資料管理</a></li>
        </ul>
    </div>
    <div class="formbody">

        <div class="formtitle">
            <span>基本資訊</span>
        </div>
        <form action="/basic/saveOrUpdate">
            <ul class="forminfo">
                
                <li><label>基礎資料</label>
                    <input name="baseName"  type="text" 
                    class="dfinput" />
                    <i>基礎資料不能超過30個字元</i>
                </li>
                <li><label>描述</label>
                    <input name="baseDesc" type="text" 
                    class="dfinput" />
                </li>
                
                <li><label>所屬類型</label>
                    
                    <div class="vocation">
                        <select class="select1" name="parentId">
                        <option value="0">--本身就是大類--</option>
                        <c:forEach items="${ parents}" var="parent">
                            <option value="${parent.baseId }">${parent.baseName }</option>
                        </c:forEach>
                        </select>
                    </div>
                    <i></i>
                </li>
                
                <li><label>&nbsp;</label>
                    <input name="" type="submit"
                    class="btn" value="确認儲存" /></li>
                </ul>
        </form>
        
    </div>
    <div style="display: none">
        <script src='http://v7.cnzz.com/stat.php?id=155540&web_id=155540'
            language='JavaScript' charset='gb2312'></script>
    </div>
</body>
</html>      
好好程式設計-物流項目15【基礎資料-分頁查詢和添加】

儲存資料

@RequestMapping("/saveOrUpdate")
public String saveOrUpdate(BasicData bd){
    if(bd.getParentId()==0){
        bd.setParentId(null);
    }
    basicService.addBasicData(bd);
    return "redirect:/basic/query";
}      
好好程式設計-物流項目15【基礎資料-分頁查詢和添加】
好好程式設計-物流項目15【基礎資料-分頁查詢和添加】
好好程式設計-物流項目15【基礎資料-分頁查詢和添加】

ok~添加成功,下篇介紹修改,删除和帶條件查詢

繼續閱讀