最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實戰(zhàn)之鮮花商城系統(tǒng)的實現(xiàn)

 更新時間:2022年05月18日 16:13:36   作者:qq1334611189  
這篇文章主要介紹了如何利用Java語言實現(xiàn)鮮花商城系統(tǒng),文中采用的技術有Spring、SpringMVC、Mybatis、JSP等,感興趣的小伙伴可以了解一下

項目介紹

該項目為前后臺項目,分為普通用戶與管理員兩種角色,前臺普通用戶登錄,后臺管理員登錄;

管理員角色包含以下功能:

管理員登錄,用戶管理,鮮花類別管理,鮮花管理,訂單管理并發(fā)貨,留言管理,系統(tǒng)公告管理等功能。

用戶角色包含以下功能:

用戶首頁,用戶注冊登錄,查看鮮花詳情,加入購物車,確認訂單,查看我的訂單,商城留言板,商城公告等功能。

環(huán)境需要

1.運行環(huán)境:最好是java jdk 1.8,我們在這個平臺上運行的。其他版本理論上也可以。

2.IDE環(huán)境:IDEA,Eclipse,Myeclipse都可以。推薦IDEA;

3.tomcat環(huán)境:Tomcat 7.x,8.x,9.x版本均可

4.硬件環(huán)境:windows 7/8/10 1G內存以上;或者 Mac OS; 

5.數(shù)據(jù)庫:MySql 5.7版本;

6.是否Maven項目:否;

技術棧

1. 后端:Spring+SpringMVC+Mybatis

2. 前端:JSP+jQuery+Ajax

使用說明

1. 使用Navicat或者其它工具,在mysql中創(chuàng)建對應名稱的數(shù)據(jù)庫,并導入項目的sql文件;

2. 使用IDEA/Eclipse/MyEclipse導入項目,Eclipse/MyEclipse導入時,若為maven項目請選擇maven;若為maven項目,導入成功后請執(zhí)行maven clean;maven install命令,然后運行;

3. 將項目中jdbc.properties配置文件中的數(shù)據(jù)庫配置改為自己的配置;

4. 運行項目,輸入localhost:8080/ 登錄

用戶賬號/密碼: user/123456

管理員賬號/密碼:admin/admin

效果圖展示

核心代碼

商品管理控制層

/**
 * 商品
 **/
@RestController
@RequestMapping("flower")
public class FlowerController {
    @Autowired
    FlowersService flowerService;
 
    @Autowired
    FlowersDao flowersDao;
 
    @RequestMapping("/test")
    R test() {
        R r = new R();
        return r;
    }
 
    //find
    @RequestMapping("/find")
    R find(@RequestParam("page") int page, @RequestParam("searchKey") String searchKey, @RequestParam("searchType") String searchType) {
        R r = new R();
        List<Flower> flowers = flowerService.find(searchKey, searchType);
        if (flowers == null) {
            return r.setCode(2000);
        }
        return getResponse(flowers, page, Constant.SHOW_PAGE_SIZE, r);
    }
 
    // 管理員查詢所有
    @RequestMapping("/findAll")
    R findAll(@RequestParam("page") int page, @RequestParam("searchKey") String searchKey) {
        R r = new R();
        List<Flower> flowers = flowerService.findAll(searchKey);
        if (flowers == null) {
            return r.setCode(2000);
        }
        return getResponse(flowers, page, Constant.PAGE_SIZE, r);
    }
 
    // 返回結果
    private R getResponse(List<Flower> flowers, int page, int pageSize, R r) {
        Map<String, Object> map = new HashMap<>();
        List<Flower> items = flowers.size() >= page * pageSize ?
                flowers.subList((page - 1) * pageSize, page * pageSize)
                : flowers.subList((page - 1) * pageSize, flowers.size());
        int len = flowers.size() % pageSize == 0 ? flowers.size() / pageSize
                : (flowers.size() / pageSize + 1);
        for (Flower item : items) {
            if (item.getImg_guid() == null) {
                item.setImg_guid(Constant.DEFAULT_IMG);
            }
            item.setImg_guid(Constant.IMG_USE_PATH + item.getImg_guid());
        }
        map.put("items", items);
        map.put("len", len);
        return r.setCode(2000).setData(map);
    }
 
    @RequestMapping("/create")
    R create(@RequestBody Flower flower) {
        R r = new R();
        int ans = flowerService.add(flower);
        if (ans == 1) {
            return r.setCode(2000).setMsg(HttpMsg.ADD_FLOWER_OK);
        }
        return r.setCode(4000).setMsg(HttpMsg.ADD_FLOWER_FAILED);
    }
 
    @RequestMapping("/update")
    R update(@RequestBody Flower flower) {
        R r = new R();
        int ans = flowerService.update(flower);
        if (ans >= 0) {
            return r.setCode(2000).setMsg(HttpMsg.UPDATE_FLOWER_OK);
        }
        return r.setCode(4000).setMsg(HttpMsg.UPDATE_FLOWER_FAILED);
    }
 
    @RequestMapping("/changeState")
    R changeState(@RequestBody Flower flower) {
        R r = new R();
        flowersDao.changeState(flower);
        String msg = flower.getState() == 1?HttpMsg.GOODS_UP_OK:HttpMsg.GOODS_DOWN_OK;
        return r.setCode(2000).setMsg(msg);
    }
 
    // 保存上傳的圖片
    @RequestMapping("/updateImg")
    R updateImg(@RequestParam("file") MultipartFile file) {
        R r = new R();
        // 只接收 jpg/png 圖片
        String filename = file.getOriginalFilename();
        if (!filename.endsWith(".jpg") && !filename.endsWith(".png")){
            return r.setCode(4000).setMsg(HttpMsg.ERROR_FILE_TYPE);
        }
        String img_guid = UUID.randomUUID().toString().replaceAll("-", "") + ".jpg";
        try {
            savePic(file.getInputStream(), img_guid);
            return r.setCode(2000).setMsg(HttpMsg.UPDATE_PIC_OK).setData(img_guid);
        } catch (IOException e) {
            return r.setCode(4000).setMsg(HttpMsg.UPDATE_PIC_FAILED);
        }
    }
 
    @PutMapping("/updateImgGuid")
    R updateImgGuid(@RequestParam("guid") String guid, @RequestParam("id") int id) {
        R r = new R();
        int ans = flowerService.updateImg(guid, id);
        if (ans == 1) {
            return r.setCode(2000).setMsg(HttpMsg.UPDATE_PIC_OK);
        }
        return r.setCode(4000).setMsg(HttpMsg.UPDATE_PIC_FAILED);
    }
 
    @DeleteMapping("/delete")
    R delete(@RequestParam("id") int id) {
        R r = new R();
        int ans = flowerService.delete(id);
        if (ans == 1) {
            return r.setCode(2000).setMsg(HttpMsg.DELETE_FLOWER_OK);
        }
        return r.setCode(4000).setMsg(HttpMsg.DELETE_FLOWER_FAILED);
    }
 
    private void savePic(InputStream inputStream, String fileName) {
        OutputStream os = null;
        try {
            String path = Constant.IMG_PATH;
            // 1K的數(shù)據(jù)緩沖
            byte[] bs = new byte[1024];
            // 讀取到的數(shù)據(jù)長度
            int len;
            // 輸出的文件流保存到本地文件
            os = new FileOutputStream(new File(path + fileName));
            // 開始讀取
            while ((len = inputStream.read(bs)) != -1) {
                os.write(bs, 0, len);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 完畢,關閉所有鏈接
            try {
                os.close();
                inputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

訂單管理控制層

/**
 * 用戶
 **/
@RestController
@RequestMapping("order")
public class OrderController {
    @Autowired
    OrderService orderService;
    @Autowired
    UserDao userDao;
    @Autowired
    OrderDao orderDao;
    @Autowired
    FlowersDao flowersDao;
 
    @RequestMapping("/test")
    R test() {
        R r = new R();
        return r.setCode(4000).setMsg(Constant.IMG_PATH).setData(orderDao.findAll(null));
    }
 
    @RequestMapping("/queryByAccount")
    R queryByAccount(@RequestParam("account") String account) {
        R r = new R();
        if (StringUtil.isEmpty(account)) {
            return r.setCode(4000).setMsg(HttpMsg.INVALID_PARAM);
        }
        List<Order> orders = orderService.queryByAccount(account);
        return r.setCode(2000).setData(orders);
    }
 
    @RequestMapping("/find")
    R find(@RequestParam("page") int page, @RequestParam("searchKey") String searchKey, @RequestParam("account") String account) {
        R r = new R();
        Map<String, Object> map = new HashMap<>();
        List<Order> orders = orderService.find(searchKey, account);
        if (orders == null) {
            return r.setCode(2000);
        }
        map.put("items", orders);
        map.put("len", orders.size());
        return r.setCode(2000).setData(map);
    }
 
    @RequestMapping("/findAll")
    R findAll(@RequestParam("page") int page, @RequestParam("searchKey") String searchKey) {
        R r = new R();
        Map<String, Object> map = new HashMap<>();
        List<Order> orders = orderService.findAll(searchKey);
        if (orders == null) {
            return r.setCode(2000);
        }
        List<Order> items = orders.size() >= page * Constant.PAGE_SIZE ?
                orders.subList((page - 1) * Constant.PAGE_SIZE, page * Constant.PAGE_SIZE)
                : orders.subList((page - 1) * Constant.PAGE_SIZE, orders.size());
        int len = orders.size() % Constant.PAGE_SIZE == 0 ? orders.size() / Constant.PAGE_SIZE
                : (orders.size() / Constant.PAGE_SIZE + 1);
        List<OrderVo> vos = new ArrayList<>();
        for (Order item : items) {
            User user = userDao.queryById(item.getUid());
            OrderVo vo = new OrderVo();
            vo.setAddress(user.getAddress()).setPhone(user.getPhone()).setUsername(user.getName())
                    .setAmount(item.getAmount()).setFlower(item.getFlower()).setId(item.getId())
                    .setUid(item.getUid()).setOrder_guid(item.getOrder_guid()).setPrice(item.getPrice())
                    .setState(item.getState());
            vos.add(vo);
        }
        map.put("items", vos);
        map.put("len", len);
        return r.setCode(2000).setData(map);
    }
 
    @RequestMapping("/update")
    R update(@RequestBody Order order) {
        R r = new R();
        int ans = orderService.update(order);
        if (ans >= 0) {
            return r.setCode(2000).setMsg(HttpMsg.UPDATE_USER_OK);
        }
        return r.setCode(4000).setMsg(HttpMsg.UPDATE_USER_FAILED);
    }
 
    @RequestMapping("/changeState")
    R changeState(@RequestBody Order order) {
        orderDao.changeState(order);
        return new R().setCode(2000).setMsg(HttpMsg.UPDATE_ORDER_OK);
    }
 
    @DeleteMapping("/delete")
    R delete(@RequestParam("id") int id) {
        R r = new R();
        int ans = orderService.delete(id);
        if (ans == 1) {
            return r.setCode(2000).setMsg(HttpMsg.DELETE_USER_OK);
        }
        return r.setCode(4000).setMsg(HttpMsg.DELETE_USER_FAILED);
    }
}
 

用戶管理控制層

/**
 * 用戶
 **/
@RestController
@RequestMapping("user")
public class UserController {
    @Autowired
    UserService userService;
    @Autowired
    UserDao dao;
 
    @RequestMapping("/test")
    R test() {
        R r = new R();
        return r.setCode(4000).setMsg(Constant.IMG_PATH).setData(dao.findAll());
    }
 
    @RequestMapping("/queryInfoByAccount")
    R queryInfoByAccount(@RequestParam("account") String account) {
        R r = new R();
        if (StringUtil.isEmpty(account)){
            return r.setCode(4000).setMsg(HttpMsg.INVALID_PARAM);
        }
        User loginUser = userService.queryInfo(account);
        if (loginUser == null){
            return r.setCode(4000).setMsg(HttpMsg.INVALID_USER);
        }
        return r.setCode(2000).setData(loginUser);
    }
 
 
    @RequestMapping("/find")
    R find(@RequestParam("page") int page, @RequestParam("searchKey") String searchKey) {
        R r = new R();
        Map<String, Object> map = new HashMap<>();
        List<User> users = userService.find(searchKey);
        if (users == null) {
            return r.setCode(2000);
        }
        List<User> items = users.size() >= page * Constant.PAGE_SIZE ?
                users.subList((page - 1) * Constant.PAGE_SIZE, page * Constant.PAGE_SIZE)
                : users.subList((page - 1) * Constant.PAGE_SIZE, users.size());
        int len = users.size() % Constant.PAGE_SIZE == 0 ? users.size() / Constant.PAGE_SIZE
                : (users.size() / Constant.PAGE_SIZE + 1);
        map.put("items", items);
        map.put("len", len);
        return r.setCode(2000).setData(map);
    }
 
 
    @RequestMapping("/create")
    R create(@RequestBody User user) {
        R r = new R();
        int ans = userService.add(user);
        if (ans == 1) {
            return r.setCode(2000).setMsg(HttpMsg.ADD_USER_OK);
        }
        return r.setCode(4000).setMsg(HttpMsg.ADD_USER_FAILED);
    }
 
    @RequestMapping("/update")
    R update(@RequestBody User user) {
        R r = new R();
        int ans = userService.update(user);
        if (ans >= 0) {
            return r.setCode(2000).setMsg(HttpMsg.UPDATE_USER_OK);
        }
        return r.setCode(4000).setMsg(HttpMsg.UPDATE_USER_FAILED);
    }
 
 
    @DeleteMapping("/delete")
    R delete(@RequestParam("id") int id) {
        R r = new R();
        int ans = userService.delete(id);
        if (ans == 1) {
            return r.setCode(2000).setMsg(HttpMsg.DELETE_USER_OK);
        }
        return r.setCode(4000).setMsg(HttpMsg.DELETE_USER_FAILED);
    }
}
 

以上就是Java實戰(zhàn)之鮮花商城系統(tǒng)的實現(xiàn)的詳細內容,更多關于Java鮮花商城系統(tǒng)的資料請關注腳本之家其它相關文章!

相關文章

  • 淺談hibernate中多表映射關系配置

    淺談hibernate中多表映射關系配置

    下面小編就為大家?guī)硪黄獪\談hibernate中多表映射關系配置。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • springboot如何配置允許跨域訪問

    springboot如何配置允許跨域訪問

    這篇文章主要介紹了springboot如何配置允許跨域訪問,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • JDK?version和class?file?version(Class編譯版本號)對應關系解讀

    JDK?version和class?file?version(Class編譯版本號)對應關系解讀

    這篇文章主要介紹了JDK?version和class?file?version(Class編譯版本號)對應關系,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java中的Random()函數(shù)及兩種構造方法

    Java中的Random()函數(shù)及兩種構造方法

    Java中存在著兩種Random函數(shù)分別是java.lang.Math.Random和java.util.Random,文中給大家介紹了random()的兩種構造方法,感興趣的朋友跟隨小編一起看看吧
    2018-11-11
  • Spring超詳細講解BeanUtils改造

    Spring超詳細講解BeanUtils改造

    BeanUtils.copyProperties();確實為我們做了很多事情,雖然不能完美完成深拷貝,但是對于?po、vo、dto?的拷貝已經(jīng)足夠用了。但是其還是有一些不夠完美的地方,下面我們來探討一下有哪些不足以及改造
    2022-06-06
  • Java Socket實現(xiàn)的傳輸對象功能示例

    Java Socket實現(xiàn)的傳輸對象功能示例

    這篇文章主要介紹了Java Socket實現(xiàn)的傳輸對象功能,結合具體實例形式分析了java socket傳輸對象的原理及接口、客戶端、服務器端相關實現(xiàn)技巧,需要的朋友可以參考下
    2017-06-06
  • Java實現(xiàn)對象排序的兩種方式詳解

    Java實現(xiàn)對象排序的兩種方式詳解

    這篇文章主要介紹了Java實現(xiàn)對象排序的兩種方式詳解,在Java中經(jīng)常會涉及到對象數(shù)組的排序問題,則就提到對象之間的比較問題,今天我們就來看一下兩種不同排序方式之間的區(qū)別,需要的朋友可以參考下
    2023-09-09
  • 詳解Java如何實現(xiàn)圖像灰度化

    詳解Java如何實現(xiàn)圖像灰度化

    這篇文章主要介紹了灰度化的幾種方法,以及如何使用Java實現(xiàn)灰度化。同時分析了網(wǎng)上一種常見卻并不妥當?shù)腏ava灰度化實現(xiàn),以及證明了opencv的灰度化是使用“加權灰度化”法,下面一起來看看。
    2016-08-08
  • Java super關鍵字的使用方法詳解

    Java super關鍵字的使用方法詳解

    這篇文章主要介紹了Java super關鍵字的使用方法詳解的相關資料,希望通過本文能幫助到大家,讓大家對super關鍵字徹底掌握,需要的朋友可以參考下
    2017-10-10
  • JAVA獲得包含0-9、a-z、A-Z范圍內字符串的的隨機數(shù)實例

    JAVA獲得包含0-9、a-z、A-Z范圍內字符串的的隨機數(shù)實例

    這篇文章主要介紹了JAVA獲得包含0-9、a-z、A-Z范圍內字符串的的隨機數(shù)實例,包含隨機數(shù)字、隨機字符串的獲取方法,需要的朋友可以參考下
    2014-07-07

最新評論

西峡县| 万山特区| 德令哈市| 苗栗市| 仙居县| 讷河市| 哈密市| 建水县| 江陵县| 东乌| 永春县| 苗栗县| 南汇区| 弥渡县| 法库县| 临城县| 图们市| 个旧市| 马边| 尼玛县| 宁河县| 延寿县| 白城市| 瓦房店市| 海伦市| 彩票| 峨眉山市| 赤壁市| 上虞市| 长白| 嫩江县| 剑阁县| 友谊县| 溆浦县| 达日县| 肥西县| 武定县| 佛教| 淳安县| 余干县| 札达县|