ssm框架maven工程實現商品的增加
看JSP應用開發詳解這本書的時候,27章有個購物車的例項,感覺書上寫的有些繁瑣,就自己實現了一個,功能可能沒有書上的全面,但是自己成就感還是蠻高的 實現了:使用者登入,檢視購物車,新增商品到購物車,清空購物車,增加或減少購物車商品數量工程目錄: jdbc.properties是為多種關係資料庫提供統一訪問
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/{資料庫名稱} jdbc.username=root jdbc.password={你的資料庫密碼} jdbc.initialSize=0 jdbc.maxActive=20
initialSize為初始化連結大小 maxActive為連線池最大數量 servlet.xml配置檔案部分:
<!-- 配置資料來源 dbcp資料庫連線池 可以配置初始連線數量,最大連線數量等等引數--> <bean id="dataSource" class="org.apache.tomcat.dbcp.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> <!-- 初始化連線大小 --> <property name="initialSize" value="${jdbc.initialSize}"></property> <!-- 連線池最大數量 --> <property name="maxActive" value="${jdbc.maxActive}"></property> </bean>
實現部分: web.xml檔案
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
spring-servlet.xml檔案:
<beans xmlns="http://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/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 開啟基於註解的spring handler mapping -->
<mvc:annotation-driven />
<!-- 配置spring自動掃描所有的controller -->
<context:component-scan base-package="com.controller"></context:component-scan>
<!-- 配置spring mvc controller和view的對映關係 以及告知spring要使用jstl -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/jsp/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<!-- spring配置全域性異常的處理 -->
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<prop key="java.lang.RuntimeException">error</prop>
</props>
</property>
</bean>
<!-- 配置spring檔案上傳的 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- one of the properties available; the maximum file size in bytes -->
<property name="maxUploadSize" value="20000000"/>
</bean>
<!-- spring上配置mybatis的整合 -->
<!-- 配置載入資料連線資原始檔的配置,把資料庫連線資料抽取到一個properties資原始檔中方便管理 -->
<context:property-placeholder location="/WEB-INF/assets/jdbc.properties"/>
<!-- 配置資料來源 dbcp資料庫連線池 可以配置初始連線數量,最大連線數量等等引數-->
<bean id="dataSource" class="org.apache.tomcat.dbcp.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<!-- 初始化連線大小 -->
<property name="initialSize" value="${jdbc.initialSize}"></property>
<!-- 連線池最大數量 -->
<property name="maxActive" value="${jdbc.maxActive}"></property>
</bean>
<!-- spring和MyBatis整合,mybatis配置對映檔案 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 自動掃描mapping.xml檔案 -->
<property name="mapperLocations" value="classpath:com/mapping/*.xml"></property>
</bean>
<!-- (事務管理)transaction manager, use JtaTransactionManager for global tx -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- DAO介面所在包名,Spring會自動查詢其下的類 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.dao" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean>
<!-- spring搜尋service服務類的包路徑 -->
<context:component-scan base-package="com.service.impl"></context:component-scan>
</beans>
成功登入後:
檢視購物車,當前購物車無商品
將選定的商品新增到購物車後 庫存商品會相應減少
目前只實現了這幾個簡單的功能
崩潰的幾點: 1.要在資料庫中查詢Product這個表中的資料,結果連結不到,問題在。。。。。在定義Product這個類時,他的所有屬性的get,和 set方法不能寫反,屬性按照什麼順序,get方法和set方法也必須按照什麼順序。 找了好久的錯誤啊,差點摔電腦了 2.我用Map表儲存當前購物車的商品,需要將新增的商品和Map表中的比較,用carlist.containsKey(product)方法比較,如果一樣就只在數量+1,不一樣再顯示新增的商品,結果之前每次比較都是false, 會出現下面這種結果: 怎麼都不知道問題出在哪裡~~~結果最後自己想抽自己個嘴巴子,在定義Product類的時候沒有重寫equals();和hashCode()方法!還是要多複習啊,竟然忘記了。
--------------------- 本文來自 Hello_and_world 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/Hello_and_world/article/details/56497184?utm_source=copy