怎么创建数据表的实体类和业务类_微服务项目第13天:商品分类业务的实现
今天是劉小愛自學Java的第143天。
感謝你的觀看,謝謝你。
學習計劃安排如下:
- 商品分類業務的初步實現。
- 數據模型的分析:數據表字段的設計,Java中對應的實體類,前端頁面vue組件。
- 業務模型的分析:請求路徑是什么?根據什么去數據庫查詢?具體實現代碼的編寫。
- 其中還有一個跨域問題未來得及解決,怎么感覺積累的問題越來越多了,這樣下去可不行啊。
一、商品分類業務
我們的項目是劉小愛商城,其核心自然是商品了,所以就要涉及到一個商品分類業務。
1需求分析
我們先看看國內的主流網站上是如何做的?
比如說家用電器,這是一級類目。
它又分為很多種:比如說電視、空調、洗衣機、冰箱……等,這是二級類目。
并且還能夠垂直細分,比如說電視又可以被分為:超薄電視、全面屏電視……等。
好,如何用代碼實現這種需求?
一個需求拿到手中了,優先建立數據模型。
- 前端頁面中的這些數據如何存放到數據庫中?
- 數據庫中的表如何設計,有哪些字段?
- 設計Java實體類和數據表對應?
這些問題解決了,方向也就定了,剩下的就是具體代碼的編寫了。
所以說數據模型是非常重要的,你想呀,方向都弄錯了,寫再多的代碼有什么用?
2數據庫表關系梳理
商品分類這是一個多級類目的關系。
家用電器是一個父節點,它有多個子節點,子節點往下又有子節點,所以表字段設計:
- id和name表字段這不用多說。
- 通過表字段parent_id指定對應父節點的id?
- 通過表字段is_parent確定它是否是父節點?
- 如果是true表示它是父節點,有子節點。
- 如果是false表示它不是父節點,沒有子節點。
這樣就能把表數據自關聯起來了,無論多少級關系,都能表示清楚了。
值得注意的是:
- 數據表字段單詞之間用下劃線“_”隔開。
- is_parent是一個布爾值,但是在數據表中用0和1表示,0為false,1為true。
3前端vue代碼的編寫
好數據分析完成,先從前端頁面開始編寫,因為請求是從前端頁面發出的。
當然實際開發中應該都是根據開發文檔來各自完成,我這邊的話都得自己來弄。
Category.vue是分類業務對應的具體vue,v-card:卡片,是vuetify框架中提供的組件。
至于具體的前端代碼編寫,我們不做詳細介紹,但是有一點我們要搞清楚:
頁面發送的請求路徑是怎樣的?
后臺服務器得根據這個路徑來接受請求。
我們可以發現:請求路徑為baseUrl+url,也就是上述中兩個url相連接。
同時再通過瀏覽器F12打開控制臺確認其請求路徑是否是這樣的?
二、后臺代碼編寫
1Java實體類
注意實體類是存放在微服務lxa-item的lxa-item-pojo子工程中:
數據庫中的表tb_category,關于字段和我們一開始的分析基本一致,多了一個sort屬性。
而Category實體類使用通用mapper將其和表tb_category一一對應起來。
2啟動類及mapper層
該業務邏輯很簡單,只涉及到了單表查詢,所以使用通用mapper即可。
注意具體的業務代碼是存放在微服務lxa-item的lxa-item-service子工程中:
①mapper層代碼編寫
因為是單表查詢,所以直接使用通用mappe即可,繼承通用mapper中的Mapper接口即可,泛型為對應的實體類Category。
②啟動類編寫
因為使用了通用mapper,所以要通過注解@MapperScan確定掃描mapper的路徑。
另外兩個注解一個開啟eureka客戶端,一個說明是SpringBoot啟動類,寫過很多遍了。
注意:通用mapper相關的包為tk開頭,一定要注意導包不要導錯了。
3Controller層和Service層
①Controller層代碼
確認其請求路徑:category/list?pid=0
先不考慮網關,直接把整個業務寫出來。
請求路徑中參數是以問號的形式拼接到路徑中的,所以用注解@RequestParam接受參數。
如果是category/list/1這樣直接出現在請求路徑中,就用注解@Pathvarible接受參數。
②Servic層代碼
因為pid并不是tb_category表中的主鍵,所以創建一個對象設定pid再查詢。
注意,做一個提醒:
關于通用mapper的使用我專門寫過一篇教程,就不做贅述了。
其中還應該做結果判斷的處理,如果查詢到的數據為空要報錯,我這邊暫時沒做處理。
三、網關測試
代碼編寫完畢做一個測試:
①直接訪問
直接在瀏覽器上輸入對應的路徑,參數pid設置為0,可以從數據庫中查詢到對應數據。
其查詢的數據結果上圖右側有顯示。
②通過網關訪問
回顧:網關的作用相當于加了一層保護,其本質還是會跳轉直接訪問時的那個路徑。
- prefix:添加路由前綴,網關訪問時路徑都要加上設置的這個路由前綴。
- routes:添加路由,item/及其子路徑全部都會跳轉到item-service這個微服務。
再次強調:每新建一個微服務,我們都要以相同的方式配置其網關路由。
③通過域名訪問
如果通過我們昨天設定的網關域名訪問,會發現瀏覽器控制臺上報錯了,
具體什么原因呢?
涉及到了一個跨域問題,關于該問題,時間受限,我們明天再做說明。
最后
我是劉小愛,一個白天上班晚上學習的95后滬漂,不為其它,只為學會自律做好自己,也愿我的每日打卡能給你帶來勇氣,歡迎點贊關注和評論。
總結
以上是生活随笔為你收集整理的怎么创建数据表的实体类和业务类_微服务项目第13天:商品分类业务的实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab输出高分辨率图片有白色毛刺,
- 下一篇: 字长16位的计算机表示最大整数_废话不多