Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 淘淘商城---8.6

淘淘商城---8.6

編輯:關於Android編程

1、測試Maven工程

1.1、創建歡迎頁

在webapp下創建一個index.jsp的歡迎頁

\

index.jsp:

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>

如果你看到此頁面,說明taotao-manager已經運行

 


 

1.2、要運行的工程

 

要運行工程,需要運行聚合工程也就是taotao-manager。

\

1.3、配置Tomcat插件

 

在taotao-manager工程的pom文件中添加如下內容:


	
	
		
			org.apache.tomcat.maven
			tomcat7-maven-plugin
			
				8080
				/
			
		
	

1.4、啟動工程

\

\

 

\

在浏覽器上輸入http://localhost:8080/

\

 

注意:

如果運行將taotao-manager運行在tomcat出錯,執行下面兩步:

1、需要把taotao-parent工程安裝到本地倉庫。Install

2、需要把taotao-common安裝到本地倉庫。install

 

2、創建數據庫

 

使用mysql數據庫。這裡我提供數據庫腳本taotao.sql,下載地址:http://pan.baidu.com/s/1kUMO4SJ


我這裡是在CentOS7上搭建數據庫系統,詳情可以參考我的另一篇博客:CentOS7上安裝mysql,鏈接地址:http://blog.csdn.net/sinat_31726559/article/details/51955125

然後用nativeCat連接上遠程數據庫,在mysql裡面新建一個taotao的數據庫,右鍵運行sql文件,將taotao.sql文件運行在taotao的數據庫中,顯示成功後就會導入項目中我們要用到的所有表。

\

 

注意:在互聯網行業的項目中盡可能的減少表的管理查詢。使用冗余解決表的關聯問題。有利於分庫分表。

商品表:

\

Sku:最小庫存量單位。就是商品id。就是商品最細力度的劃分。每個sku都唯一對應一款商品,商品的顏色、配置都已經唯一確定。

3、逆向工程

 

Mybatis的逆向工程。根據數據庫表生成java代碼。詳細教程可參考:http://www.tuicool.com/articles/ABbqqie

這裡我給大家提供好我這邊能跑的官網工程,上面的配置文件是按照我機器上面的信息配置的,你們用的時候要記得將上面的一部分信息修改成符合你機器,逆向工程下載地址我已經上傳到我的雲盤裡,鏈接是:http://pan.baidu.com/s/1qYvknrm

3.1、導入工程

\

 

\

 

\

 

\

3.2、修改generatorConfi.xml

generatorConfig.xml:

 





	
		
			
			
		

		
		connectionURL="jdbc:mysql://192.168.43.163:3306/taotao" userId="root"
			password="115010">
		

		
		
			
		

		
		
			
			
			
			
		

		
		
			
			
		

		
		
			
			
		

		

	

 

3.3、運行逆向工程

\

 

\

運行成功後會產生上面兩個java包下的代碼。

4、SSM框架整合

4.1、整合思路

4.1.1、Dao層

 

使用mybatis框架。創建SqlMapConfig.xml。

創建一個applicationContext-dao.xml

1、配置數據源

2、需要讓spring容器管理SqlsessionFactory,單例存在。

3、把mapper的代理對象放到spring容器中。使用掃描包的方式加載mapper的代理對象。

4.1.2、Service層

 

1、事務管理

2、需要把service實現類對象放到spring容器中管理。

4.1.3、表現層

 

1、配置注解驅動

2、配置視圖解析器

3、需要掃描controller

4.1.4、Web.xml

 

1、spring容器的配置

2、Springmvc前端控制器的配置

3、Post亂碼過濾器

4.2、框架整合

 

首先思考我們這些配置文件應該放在我們創建的哪個工程下?

答:就我思考,首先我們應該理解配置文件是干什麼用的,假如我將配置文件放在taotao-manager-pojo下,他是一個jar形式的工程,開發完後會打包成jar放到lib下,這樣程序就讀不到配置文件了,所以這裡我們應該放到war的工程下。

 

 

需要把配置文件放到taotao-manager-web工程下。因為此工程為war工程,其他的工程只是一個jar包。

4.2.1、mybatis整合

整合後的工程結構圖如下所示:

\

SqlMapConfig.xml

 






 

 

 

applicationContext-dao.xml

 

 




	
	
	
	
	
		
		
		
		
		
		
	
	
	
		
		
	
	
	
		
	

 

4.2.2、Service層

 

applicationContext-service.xml

 

 




	
	


 

applicationContext-trans.xml

 

 




	
	
		
		
	
	
	
		
			
			
			
			
			
			
			
			
			
			
		
	
	
	
		
	

 

4.2.3、表現層

springmvc.xml

 




	
	
	
		
		
	


 

web.xml

 



	taotao-manager
	
		index.html
		index.htm
		index.jsp
		default.html
		default.htm
		default.jsp
	
	
	
		contextConfigLocation
		classpath:spring/applicationContext-*.xml
	
	
		org.springframework.web.context.ContextLoaderListener
	
	
	
		CharacterEncodingFilter
		org.springframework.web.filter.CharacterEncodingFilter
		
			encoding
			utf-8
		
	
	
		CharacterEncodingFilter
		/*
	
	
	
		taotao-manager
		org.springframework.web.servlet.DispatcherServlet
		
		
			contextConfigLocation
			classpath:spring/springmvc.xml
		
		1
	
	
		taotao-manager
		/
	


注意:標紅部分的"/"會攔截所有請求包括靜態資源。需要在springmvc.xml中添加靜態資源的映射。

 

修改完的springmvc如下:

 




	
	
	
		
		
	
	
	
	
	
	


 

4.2.4、添加後台管理的靜態資源頁面

這部分的資源我已經上傳到雲盤,下載鏈接是:http://pan.baidu.com/s/1qYIkRIO

將裡面的靜態資源復制粘貼到WEB-INF下面,如圖:

\

4.3、整合討論

這裡我們考慮一下為啥不直接用全局掃描呢?

答:首先我們要理解springmvc和spring的父子容器關系,如下圖所示:

\

 

例如:

在applicationContext-service中配置:



會掃描@Controller、@Service、@Repository、@Compnent

Springmvc.Xml中不掃描。

結果:springmvc。不能提供服務,因為springmvc子容器中不掃描會沒有controller對象。

所以這裡我們不能去配置全局掃描,會找不到對象的。


5、整合測試

5.1、測試需求

這裡我們就做個根據商品id查詢商品信息。

5.2、SQL語句

 

SELECT * from tb_item WHERE id=536563

 

5.3、Dao層

使用逆向工程生成的mapper文件

5.4、Service層

接收商品id調用dao查詢商品信息。返回商品pojo對象,代碼如下:

定義一個ItemService接口:

 

package com.taotao.service;

import com.taotao.pojo.TbItem;

/**
 * 
  * @ClassName: ItemService  
  * @Description: TODO(商品管理的itemService接口)  
  * @author 汪本成  
  * @date 2016年8月6日 下午10:31:12  
  *
 */
public interface ItemService {
	
	TbItem getItemById(long itemId);

}

設計一個ItemService的實現類

 

 

package com.taotao.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.taotao.mapper.TbItemMapper;
import com.taotao.pojo.TbItem;
import com.taotao.pojo.TbItemExample;
import com.taotao.pojo.TbItemExample.Criteria;
import com.taotao.service.ItemService;

/**
 * 
  * @ClassName: ItemServiceImpl  
  * @Description: TODO(商品管理的ItemService)  
  * @author 汪本成  
  * @date 2016年8月6日 下午10:30:28  
  * @version 1.0
 */


@Service
public class ItemServiceImpl implements ItemService {
	
	@Autowired
	private TbItemMapper itemMapper;

	@Override
	public TbItem getItemById(long itemId) {
		// TODO Auto-generated method stub
		
		/**
		 * 1、根據主鍵查詢
		 *
		//TbItem item = itemMapper.selectByPrimaryKey(itemId);
		
		/**
		 * 2、根據條件進行查詢
		 */
		//添加查詢條件
		TbItemExample example = new TbItemExample();
		Criteria criteria = example.createCriteria();
		criteria.andIdEqualTo(itemId);
		//返回查詢結果到List中
		List list = itemMapper.selectByExample(example);
		//進行判斷
		if(null != list && list.size() > 0) {
			TbItem item = list.get(0);
			return item;
		}
		return null;
	}

}

 

5.5、Controller層

 

接收頁面請求商品id,調用service查詢商品信息。直接返回一個json數據。需要使用@ResponseBody注解。

 

package com.taotao.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.taotao.pojo.TbItem;
import com.taotao.service.ItemService;

/**
 * 
  * @ClassName: ItemController  
  * @Description: TODO(調用ItemService查詢商品信息)  
  * @author 汪本成  
  * @date 2016年8月6日 下午10:49:53  
  *
 */

@Controller
public class ItemController {

	@Autowired
	private ItemService itemService;
	
	@RequestMapping("/item/{itemId}")
	@ResponseBody
	public TbItem getItemById(@PathVariable Long itemId) {
		TbItem tbItem = itemService.getItemById(itemId);
		return tbItem;
	}
}

5.6、查詢結果

 

啟動taotao-manager之後,打開浏覽器輸入http://localhost:8080/item/536563,會報錯,如下:

\

 

這個錯誤的解決也很簡單

修改taotao-manager-mapper的pom文件,在文件中添加下面內容就好

 


	
		
            
                src/main/java
                
                    **/*.properties
                    **/*.xml
                
                false
            
        
	

修改完之後刷新頁面,如下:

 

\

測試ok!大笑,明天繼續,歡迎關注,一直分享干貨中。


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved