淘淘商城第二天笔记.docx
《淘淘商城第二天笔记.docx》由会员分享,可在线阅读,更多相关《淘淘商城第二天笔记.docx(25页珍藏版)》请在冰豆网上搜索。
淘淘商城第二天笔记
淘淘商城第二天
课程计划
商品列表的查询
1、框架整合springmvc+spring+mybatis
2、创建数据库
3、使用mybatis的逆向工程生成代码
4、商品列表功能实现
创建数据库
使用mysql数据库。
在互联网行业的项目中尽可能的减少表的管理查询。
使用冗余解决表的关联问题。
有利于分库分表。
商品表:
Sku:
最小库存量单位。
就是商品id。
就是商品最细力度的划分。
每个sku都唯一对应一款商品,商品的颜色、配置都已经唯一确定。
逆向工程
Mybatis的逆向工程。
根据数据库表生成java代码。
注意:
如果想再次生成代码,必须先将已经生成的代码删除,否则会在原文件中追加。
Ssm框架整合
整合的思路
Dao层
使用mybatis框架。
创建SqlMapConfig.xml。
创建一个applicationContext-dao.xml
1、配置数据源
2、需要让spring容器管理SqlsessionFactory,单例存在。
3、把mapper的代理对象放到spring容器中。
使用扫描包的方式加载mapper的代理对象。
Service层
1、事务管理
2、需要把service实现类对象放到spring容器中管理。
表现层
1、配置注解驱动
2、配置视图解析器
3、需要扫描controller
Web.xml
1、spring容器的配置
2、Springmvc前端控制器的配置
3、Post乱码过滤器
框架整合
需要把配置文件放到taotao-manager-web工程下。
因为此工程为war工程,其他的工程只是一个jar包。
Mybatis整合
xmlversion="1.0"encoding="UTF-8"?
>
DOCTYPEconfiguration
PUBLIC"-//mybatis.org//DTDConfig3.0//EN"
"http:
//mybatis.org/dtd/mybatis-3-config.dtd">
applicationContext-dao.xml
xmlversion="1.0"encoding="UTF-8"?
>
//www.springframework.org/schema/beans"
xmlns:
context="http:
//www.springframework.org/schema/context"xmlns:
p="http:
//www.springframework.org/schema/p"
xmlns:
aop="http:
//www.springframework.org/schema/aop"xmlns:
tx="http:
//www.springframework.org/schema/tx"
xmlns:
xsi="http:
//www.w3.org/2001/XMLSchema-instance"
xsi:
schemaLocation="http:
//www.springframework.org/schema/beanshttp:
//www.springframework.org/schema/beans/spring-beans-4.0.xsd
http:
//www.springframework.org/schema/contexthttp:
//www.springframework.org/schema/context/spring-context-4.0.xsd
http:
//www.springframework.org/schema/aophttp:
//www.springframework.org/schema/aop/spring-aop-4.0.xsdhttp:
//www.springframework.org/schema/txhttp:
//www.springframework.org/schema/tx/spring-tx-4.0.xsd
http:
//www.springframework.org/schema/utilhttp:
//www.springframework.org/schema/util/spring-util-4.0.xsd">
--数据库连接池-->
--加载配置文件-->
property-placeholderlocation="classpath:
resource/db.properties"/>
--数据库连接池-->
destroy-method="close">
--配置sqlsessionFactory-->
mybatis/SqlMapConfig.xml">
--配置扫描包,加载mapper代理对象-->
Service层
applicationContext-service.xml
xmlversion="1.0"encoding="UTF-8"?
>
//www.springframework.org/schema/beans"
xmlns:
context="http:
//www.springframework.org/schema/context"xmlns:
p="http:
//www.springframework.org/schema/p"
xmlns:
aop="http:
//www.springframework.org/schema/aop"xmlns:
tx="http:
//www.springframework.org/schema/tx"
xmlns:
xsi="http:
//www.w3.org/2001/XMLSchema-instance"
xsi:
schemaLocation="http:
//www.springframework.org/schema/beanshttp:
//www.springframework.org/schema/beans/spring-beans-4.0.xsd
http:
//www.springframework.org/schema/contexthttp:
//www.springframework.org/schema/context/spring-context-4.0.xsd
http:
//www.springframework.org/schema/aophttp:
//www.springframework.org/schema/aop/spring-aop-4.0.xsdhttp:
//www.springframework.org/schema/txhttp:
//www.springframework.org/schema/tx/spring-tx-4.0.xsd
http:
//www.springframework.org/schema/utilhttp:
//www.springframework.org/schema/util/spring-util-4.0.xsd">
--扫描包加载Service实现类-->
component-scanbase-package="com.taotao.service">
component-scan>
applicationContext-trans.xml
xmlversion="1.0"encoding="UTF-8"?
>
//www.springframework.org/schema/beans"
xmlns:
context="http:
//www.springframework.org/schema/context"xmlns:
p="http:
//www.springframework.org/schema/p"
xmlns:
aop="http:
//www.springframework.org/schema/aop"xmlns:
tx="http:
//www.springframework.org/schema/tx"
xmlns:
xsi="http:
//www.w3.org/2001/XMLSchema-instance"
xsi:
schemaLocation="http:
//www.springframework.org/schema/beanshttp:
//www.springframework.org/schema/beans/spring-beans-4.0.xsd
http:
//www.springframework.org/schema/contexthttp:
//www.springframework.org/schema/context/spring-context-4.0.xsd
http:
//www.springframework.org/schema/aophttp:
//www.springframework.org/schema/aop/spring-aop-4.0.xsdhttp:
//www.springframework.org/schema/txhttp:
//www.springframework.org/schema/tx/spring-tx-4.0.xsd
http:
//www.springframework.org/schema/utilhttp:
//www.springframework.org/schema/util/spring-util-4.0.xsd">
--事务管理器-->
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
--数据源-->
--通知-->
adviceid="txAdvice"transaction-manager="transactionManager">
attributes>
--传播行为-->
methodname="save*"propagation="REQUIRED"/>
methodname="insert*"propagation="REQUIRED"/>
methodname="add*"propagation="REQUIRED"/>
methodname="create*"propagation="REQUIRED"/>
methodname="delete*"propagation="REQUIRED"/>
methodname="update*"propagation="REQUIRED"/>
methodname="find*"propagation="SUPPORTS"read-only="true"/>
methodname="select*"propagation="SUPPORTS"read-only="true"/>
methodname="get*"propagation="SUPPORTS"read-only="true"/>
attributes>
advice>
--切面-->
config>
advisoradvice-ref="txAdvice"
pointcut="execution(*com.taotao.service.*.*(..))"/>
config>
表现层
xmlversion="1.0"encoding="UTF-8"?
>
//www.springframework.org/schema/beans"
xmlns:
xsi="http:
//www.w3.org/2001/XMLSchema-instance"xmlns:
p="http:
//www.springframework.org/schema/p"
xmlns:
context="http:
//www.springframework.org/schema/context"
xmlns:
mvc="http:
//www.springframework.org/schema/mvc"
xsi:
schemaLocation="http:
//www.springframework.org/schema/beanshttp:
//www.springframework.org/schema/beans/spring-beans.xsd
http:
//www.springframework.org/schema/mvchttp:
//www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http:
//www.springframework.org/schema/contexthttp:
//www.springframework.org/schema/context/spring-context.xsd">
component-scanbase-package="com.taotao.controller"/>
annotation-driven/>
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
Web.xml
xmlversion="1.0"encoding="UTF-8"?
>
xsi="http:
//www.w3.org/2001/XMLSchema-instance"
xmlns="xmlns:
web="
xsi:
schemaLocation="
id="taotao"version="2.5">
taotao-manager
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
--加载spring容器-->
contextConfigLocation
classpath:
spring/applicationContext-*.xml
org.springframework.web.context.ContextLoaderListener
--解决post乱码-->
CharacterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
CharacterEncodingFilter
/*
--springmvc的前端控制器-->
taotao-manager
org.springframework.web.servlet.DispatcherServlet
--contextConfigLocation不是必须的,如果不配置contextConfigLocation,springmvc的配置文件默认在:
WEB-INF/servlet的name+"-servlet.xml"-->
contextConfigLocation
classpath:
spring/springmvc.xml
1
taotao-manager
/
/:
会拦截所有请求包括静态资源。
需要在springmvc.xml中添加静态资源的映射。
--资源映射-->
resourceslocation="/WEB-INF/css/"mapping="/css/**"/>
resourceslocation="/WEB-INF/js/"mapping="/js/**"/>
添加静态资源
Springmvc和spring的父子容器关系
Springmvc
Controller
子容器可以访问父容器中的对象。
Spring容器
controller
Service
Dao
父容器不能访问子容器对象。
例如:
在applicationContext-service中配置:
--扫描包加载Service实现类-->
component-scanbase-package="com.taotao">
component-scan>
会扫描@Controller、@Service、@Repository、@Compnent
Springmvc。
Xml中不扫描。
结论:
springmvc。
不能提供服务,因为springmvc子容器中没有controller对象。
测试整合结果
需求
跟据商品id查询商品信息。
Sql语句
SELECT*fromtb_itemWHEREid=536563
Dao层
可以使用逆向工程生成的mapper文件。
Service层
接收商品id调用dao查询商品信息。
返回商品pojo对象。
/**
*商品管理Service
*
Title:
ItemServiceImpl
*
Description:
*
Company:
*@author入云龙
*@date2015年9月2日上午10:
47:
14
*@version1.0
*/
@Service
publicc