ssm网上商店实训 部分内容

    技术2022-07-11  96

    一、 基础的配置文件

    applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx https://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd"> <!--1.先去读取数据库的配置文件, db.properties--> <context:property-placeholder location="classpath:db.properties"/> <!--2. [IOC]定义数据源 id class--> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> <!--2.2 设置数据源属性 name 数据源驱动--> <property name="driverClassName" value="${db.driverClassName}"/> <property name="url" value="${db.url}"/> <property name="username" value="${db.username}"/> <property name="password" value="${db.password}"/> </bean> <!--3.定义事物管理器--> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <!--3.1 设置事物的属性--> <property name="dataSource" ref="dataSource"/> </bean> <!--4.开启事物的注解--> <tx:annotation-driven transaction-manager="transactionManager"/> <!-- 5定义Mybatis 的控制翻转 降低耦合性 实例化 new的过程--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <!-- 文件的位置 --> <property name="configLocation" value="classpath:mybatis-config.xml"/> <!-- 配置文件映射--> <property name="mapperLocations" value="classpath:mapper/*.xml"></property> <!--实体类别名配置--> <property name="typeAliasesPackage" value="cn.javabs.phonemall.entity"/> </bean> <!-- 6定义Mybatis 映射扫描信息--> <bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> <property name="basePackage" value="cn.javabs.phonemall.mapper"/> </bean> <!-- 7. 扫描service 层 Mapper 层--> <context:component-scan base-package="cn.javabs.phonemall"/> </beans>

    2.db.properties

    # 数据库 的链接信息参数配置 需要更改数据库名称和密码 db.driverClassName=com.mysql.jdbc.Driver db.url=jdbc:mysql://127.0.0.1:3306/phonemall db.username=root db.password=root log4j.properties # Global logging configuration log4j.rootLogger=DEBUG, stdout # Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n log4j2.properties <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> </Console> </Appenders> <Loggers> <Root level="error"> <AppenderRef ref="Console"/> </Root> </Loggers> </Configuration> mybatis-config.xml <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> </Console> </Appenders> <Loggers> <Root level="error"> <AppenderRef ref="Console"/> </Root> </Loggers> </Configuration> springmvc-config.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <!-- 1.开启springmvc注解扫描--> <context:component-scan base-package="cn.javabs.phonemall.controller"/> <!-- 2. 开启MVC注解驱动--> <mvc:annotation-driven/> <!-- 3.配置静态资源--> <!-- 后台页面所需静态资源--> <mvc:resources mapping="/resource/js/**" location="/resource/js"/> <mvc:resources mapping="/resource/css/**" location="/resource/css/"/> <mvc:resources mapping="/resource/images/**" location="/resource/images/"/> <mvc:resources mapping="/resource/fonts/**" location="/resource/fonts/"/> <!--前台资源解析器 --> <mvc:resources mapping="/css/**" location="/css/"/> <mvc:resources mapping="/fonts/**" location="/fonts/"/> <!-- <mvc:resources mapping="/pic/**" location="/pic/"/>--> <mvc:resources mapping="/images/**" location="/images/"/> <mvc:resources mapping="/js/**" location="/js/"/> <mvc:resources mapping="/layer/**" location="/layer/"/> <!-- 4.配置视图解析器--> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value=""/> <property name="suffix" value=".jsp"/> </bean> <!-- 5.配置拦截器--> <!-- <mvc:interceptors>--> <!-- <mvc:interceptor>--> <!-- <mvc:mapping path="/admin/**/"/>--> <!-- <bean class="cn.javabs.phonemall.controller.AdminInterceptor"></bean>--> <!-- </mvc:interceptor>--> <!-- </mvc:interceptors>--> <!-- 6.配置多媒体文件解析器 用于文件的上传解析器--> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 设置文件上传的大小,最大允许上传尺寸为5MB 1024*1024*10/2= 1MB--> <property name="maxUploadSizePerFile" value="5242880"/> <property name="defaultEncoding" value="UTF-8"/> </bean> </beans> web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <!-- 1.spring 的监听器--> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 2.spring mvc 的前端控制器--> <servlet> <servlet-name>sprinmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 设置初始化值--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc-cofig.xml</param-value> </init-param> <!-- 程序一启动就加载本配置文件--> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>sprinmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- 3.核心过滤器--> <filter> <filter-name>CharacterEndingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEndingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app> 在配置文件之前必须先进行到坐标 pom .xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>phoneMail_SSM</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <name>phoneMail_SSM Maven Webapp</name> <!-- FIXME change it to the project's website --> <url>http://www.example.com</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <dependencies> <!--1.spring框架的依赖--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.5.RELEASE</version> </dependency> <!--AOP 辅助依赖--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.2.5.RELEASE</version> </dependency> <!-- spring的依赖Acpests--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>5.2.5.RELEASE</version> </dependency> <!--Spring 的test--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>5.2.5.RELEASE</version> </dependency> <!--2.springmvc框架的依赖--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.5.RELEASE</version> </dependency> <!--3.mybatis框架的依赖 核心依赖 辅助依赖--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.4</version> </dependency> <!--1.mybatis-spring框架整合的依赖--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>2.0.1</version> </dependency> <!-- 导入logj4 依赖--> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.12.1</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.12.1</version> </dependency> <!-- 日志包 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.25</version> </dependency> <dependency> <groupId>ognl</groupId> <artifactId>ognl</artifactId> <version>3.1.12</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> <!--5.mybati数据库的依赖--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency> <!-- 6.druid 数据库连接的依赖--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.14</version> </dependency> <!-- 7. mybatis 分页pagegelper 的依赖--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.10</version> </dependency> <!--8. Servlet 4.0 依赖--> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> </dependency> <!-- jstl 依赖--> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> </dependency> <dependency> <groupId>org.apache.taglibs</groupId> <artifactId>taglibs-standard-spec</artifactId> <version>1.2.5</version> </dependency> <dependency> <groupId>org.apache.taglibs</groupId> <artifactId>taglibs-standard-impl</artifactId> <version>1.2.5</version> </dependency> <!--工具类--> <dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-sdk-java</artifactId> <version>3.3.49.ALL</version> </dependency> <!-- </dependency>--> <!-- 上传下载--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.1</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency> <!-- 单元测试--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13</version> <scope>test</scope> </dependency> </dependencies> </project>
    二 、 先是 实现类 —— service—— service实现体——mapper——mapper.xml—— 控制器 连接页面代码的枢纽
    分类 package cn.javabs.phonemall.entity; import java.io.Serializable; /** * 分类的实体类 */ public class Category implements Serializable { private Integer cid; private String cname; // alt + insert 生成 有参 无参 getter和setter 方法 toString 方法 @Override public String toString() { return "Category{" + "cid=" + cid + ", cname='" + cname + '\'' + '}'; } public Integer getCid() { return cid; } public void setCid(Integer cid) { this.cid = cid; } public String getCname() { return cname; } public void setCname(String cname) { this.cname = cname; } public Category() { super(); } public Category(Integer cid, String cname) { this.cid = cid; this.cname = cname; } } package cn.javabs.phonemall.mapper; import cn.javabs.phonemall.entity.Category; import org.springframework.stereotype.Repository; import java.util.List; @Repository("categoryMapper") public interface CategoryMapper { /** * 是否有名字 全部查询 和模胡查询 * @param cname * @return */ List findAll(String cname); /** * 根据 cid 模胡查询 * @param cid * @return */ Category findById(Integer cid); /** * 添加分类 * @param category * @return */ int add(Category category); /** * 删除分类 * @param cid * @return */ int del(Integer cid); /** * 修改分类 * @param category * @return */ int update(Category category); } package cn.javabs.phonemall.mapper; import cn.javabs.phonemall.entity.Category; import org.springframework.stereotype.Repository; import java.util.List; @Repository("categoryMapper") public interface CategoryMapper { /** * 是否有名字 全部查询 和模胡查询 * @param cname * @return */ List findAll(String cname); /** * 根据 cid 模胡查询 * @param cid * @return */ Category findById(Integer cid); /** * 添加分类 * @param category * @return */ int add(Category category); /** * 删除分类 * @param cid * @return */ int del(Integer cid); /** * 修改分类 * @param category * @return */ int update(Category category); } ```java package cn.javabs.phonemall.service.impl; import cn.javabs.phonemall.entity.Category; import cn.javabs.phonemall.mapper.CategoryMapper; import cn.javabs.phonemall.service.CategoryService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; @Service("categoryService")// 开启service方法 @Transactional //开启方法 public class CategoryServiceImpl implements CategoryService { @Autowired @Qualifier("categoryMapper") private CategoryMapper categoryMapper; /** * 根据用户 是否 有名字 进行全部查询和模胡查询 * * @param cname * @return */ @Override public List<Category> finAllCategory(String cname) { List list = null; System.out.println("cname:"+cname); list = categoryMapper.findAll(cname); System.out.println("cnmae:"+cname); return list; } /** * 根据编号获取分类 * * @param cid * @return */ @Override public Category findCategoryById(Integer cid) { Category category =categoryMapper.findById(cid); return category; } /** * 添加分类 * * @param category * @return */ @Override public int addCategory(Category category) { int number = categoryMapper.add(category); return number; } /** * 删除分类 * * @param cid * @return */ @Override public int delCategory(Integer cid) { int number = categoryMapper.del(cid); return number; } /** * 修改分类 * * @param category * @return */ @Override public int editCategory(Category category) { int number = categoryMapper.update(category); return number; } } ```java package cn.javabs.phonemall.service; import cn.javabs.phonemall.entity.Category; import java.util.List; public interface CategoryService { /** * 根据用户 是否 有名字 进行全部查询和模胡查询 * @param cname * @return */ List<Category> finAllCategory(String cname); /** * 根据编号获取分类 * @param cid * @return */ Category findCategoryById(Integer cid); /** * 添加分类 * @param category * @return */ int addCategory(Category category); /** * 删除分类 * @param cid * @return */ int delCategory(Integer cid); /** * 修改分类 * @param category * @return */ int editCategory(Category category); } <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- namespace 表示命名空间 --> <mapper namespace="cn.javabs.phonemall.mapper.CategoryMapper"> <!-- SQL语句 --> <!-- 查询全部以及模胡查询--> <select id="findAll" parameterType="String" resultType="category"> <!--模胡查询--> <if test="cname != null"> select * from category where cname like concat('%',#{cname},'%') order by cid desc </if> <!-- 查询全部并以倒序的方式培训--> <if test="cname == null"> select * from category order by cid desc </if> </select> <!-- 根据cid 进行查询分类--> <select id="findById" parameterType="Integer" resultType="Category"> select * from category where cid = #{cid} </select> <!-- 添加--> <insert id="add" parameterType="category"> insert into category <trim prefix="(" suffix=")" suffixOverrides=","> <if test="cname != null"> cname, </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="cname != null"> #{cname}, </if> </trim> </insert> <!-- 删除--> <delete id="del" parameterType="Integer"> delete from category where cid = #{cid} </delete> <!-- 修改--> <update id="update" parameterType="category"> update category set cname =#{cname} where cid =#{cid} </update> </mapper> 商品 package cn.javabs.phonemall.entity; /** * 商品类 */ public class Goods { private Integer gid; private String gname; private String images1; private String images2; private Double price; private String intro; //简绍 private Integer stock; // 库存 private Integer categoryId; //分类ID private Category category; private boolean topScroll;// 条幅推荐 private boolean toplarge;// 大图推荐 public Integer getGid() { return gid; } public void setGid(Integer gid) { this.gid = gid; } public String getGname() { return gname; } public void setGname(String gname) { this.gname = gname; } public String getImages1() { return images1; } public void setImages1(String images1) { this.images1 = images1; } public String getImages2() { return images2; } public void setImages2(String images2) { this.images2 = images2; } public Double getPrice() { return price; } public void setPrice(Double price) { this.price = price; } public String getIntro() { return intro; } public void setIntro(String intro) { this.intro = intro; } public Integer getStock() { return stock; } public void setStock(Integer stock) { this.stock = stock; } public Integer getCategoryId() { return categoryId; } public void setCategoryId(Integer categoryId) { this.categoryId = categoryId; } public Category getCategory() { return category; } public void setCategory(Category category) { this.category = category; } public boolean isTopScroll() { return topScroll; } public void setTopScroll(boolean topScroll) { this.topScroll = topScroll; } public boolean isToplarge() { return toplarge; } public void setToplarge(boolean toplarge) { this.toplarge = toplarge; } public boolean isTopSmall() { return topSmall; } public void setTopSmall(boolean topSmall) { this.topSmall = topSmall; } private boolean topSmall;// 小图推荐 @Override public String toString() { return "Goods{" + "gid=" + gid + ", gname='" + gname + '\'' + ", images1='" + images1 + '\'' + ", images2='" + images2 + '\'' + ", price=" + price + ", intro='" + intro + '\'' + ", stock=" + stock + ", categoryId=" + categoryId + ", category=" + category + ", topScroll=" + topScroll + ", toplarge=" + toplarge + ", topSmall=" + topSmall + '}'; } public Goods() { super(); } public Goods(Integer gid, String gname, String images1, String images2, Double price, String intro, Integer stock, Integer categoryId, Category category, boolean topScroll, boolean toplarge, boolean topSmall) { this.gid = gid; this.gname = gname; this.images1 = images1; this.images2 = images2; this.price = price; this.intro = intro; this.stock = stock; this.categoryId = categoryId; this.category = category; this.topScroll = topScroll; this.toplarge = toplarge; this.topSmall = topSmall; } } package cn.javabs.phonemall.mapper; import cn.javabs.phonemall.entity.Goods; import org.apache.ibatis.annotations.Select; import org.springframework.stereotype.Repository; import java.util.List; /** * 商品的控制器 */ @Repository("goodsMapper") public interface GoodsMapper { List<Goods> findName(String gname); List<Goods> find(Integer categoryId); // List<Goods> find(@Param("starIndex") int startIndex, // @Param("pageSize") int pageSize); // @Select("select count(*) from goods where categoryId =#{categoryId}") int findTotal(Integer categoryId); // @Select("select count(*) from goods") // int findTotal(); @Select("select * from goods where gid=#{gid}") Goods findById(Integer gid); int add(Goods goods); int del(Integer gid); int update(Goods goods); } package cn.javabs.phonemall.service.impl; import cn.javabs.phonemall.entity.Category; import cn.javabs.phonemall.entity.Goods; import cn.javabs.phonemall.entity.Recommend; import cn.javabs.phonemall.mapper.CategoryMapper; import cn.javabs.phonemall.mapper.GoodsMapper; import cn.javabs.phonemall.service.GoodsService; import cn.javabs.phonemall.service.RecommendService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; @Service("goodsService") @Transactional public class GoodsServiceImpl implements GoodsService { @Autowired @Qualifier("goodsMapper") private GoodsMapper goodsMapper; @Autowired @Qualifier("categoryMapper") private CategoryMapper categoryMapper; @Autowired @Qualifier("recommendService") private RecommendService recommendService; /** * 迷糊查询商品 * * @param gname * @return */ @Override public List<Goods> findGoodsByLikeNMae(String gname) { List<Goods> goodsList = goodsMapper.findName(gname); return goodsList; } /** * 通过分类查询商品 * * @param categoryId * @return */ @Override public List<Goods> findAllGoods(Integer categoryId, Byte status) { if (status == 0) { return goodsMapper.find(categoryId); } List<Recommend> recommendList = recommendService.findAll(status); // 判断集合是否为空 if (recommendList != null && recommendList.size()>0){ List<Goods> goodsList = new ArrayList<>(); // 从集合中 循环取出 每一项 for (Recommend recommend:recommendList){ // 获取商品id Integer goodsId = recommend.getGoodsId(); // 通过商品id 获取商品对象 Goods goods = goodsMapper.findById(goodsId); // 把商品放入 集合中去 goodsList.add(goods); } return goodsList; } return null; } // List<Goods> goodsList = null; // if (categoryId == null) { // goodsList = goodsMapper.find(null, startIndex, pageSize); // } else { // goodsList = goodsMapper.find(categoryId, startIndex, pageSize); // } // return goodsList; // } /** * 通过分类获取商品的总条数 * * @param categoryId */ @Override public int findTotalRecords(Integer categoryId) { return goodsMapper.findTotal(categoryId) ; } /** * 通过id进行查询 * * @param gid * @return */ @Override public Goods findGoodsById(Integer gid) { Goods goods = goodsMapper.findById(gid); System.out.println("goods="+goods); Integer categoryId =goods.getCategoryId(); Category category = categoryMapper.findById(categoryId); System.out.println("category:"+category); goods.setCategory(category); return goods; } /** * 添加商品 * * @param goods * @return */ @Override public int addGoods(Goods goods) { return goodsMapper.add(goods); } /** * 删除商品 * * @param gid * @return */ @Override public int delGoods(Integer gid) { return goodsMapper.del(gid); } /** * 修改商品 * * @param goods * @return */ @Override public int editGoods(Goods goods) { return goodsMapper.update(goods); } } package cn.javabs.phonemall.service; import cn.javabs.phonemall.entity.Goods; import java.util.List; public interface GoodsService { /** * 获取商品列表 * @param startIndex * @param pageSize * @return */ // List<Goods> findsAllGoods(int startIndex,int pageSize); /** * 获取商品总条数 * @return */ // int findTotalRecords(); /** * 迷糊查询商品 * @param gname * @return */ List<Goods> findGoodsByLikeNMae(String gname); /** * 通过分类查询商品 * @param categoryId * @return */ List<Goods> findAllGoods(Integer categoryId, Byte status); /** * 通过分类获取商品的总条数 */ int findTotalRecords(Integer categoryId); /** * 通过id进行查询 * @param gid * @return */ Goods findGoodsById(Integer gid); /** * 添加商品 * @param goods * @return */ int addGoods(Goods goods); /** * 删除商品 * @param gid * @return */ int delGoods(Integer gid); /** * 修改商品 * @param goods * @return */ int editGoods(Goods goods); } <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- namespace 表示命名空间 --> <mapper namespace="cn.javabs.phonemall.mapper.GoodsMapper"> <!-- SQL语句 --> <select id="findName" parameterType="String" resultType="Goods"> <if test="gname == null"> select * from goods order gid desc </if> <if test="gname != null"> select * from goods where gname like concat('%'#{gname}'%') order by gid desc </if> </select> <select id="find" parameterType="int" resultType="Goods"> select * from goods <where> <!--分类分页插查询--> <if test=" categoryId == null"> </if> <if test="status == 0"> status = #{status} </if> <!-- 分类分页查询--> <if test="categoryId != null"> categoryId = #{categoryId} </if> </where> </select> <select id="findTotal" parameterType="int" resultType="int"> select count (*) from goods <!--查询总条数 --> <if test="categoryId == null"> </if> <!--查询该分类的总条数--> <if test="categoryId != null"> categoryId = #{categoryId} </if> </select> <!-- 添加商品--> <insert id="add" parameterType="goods"> insert into goods (gname,images1,images2,price,intro,stock,categoryId) values (#{gname},#{images1},#{images2},#{price},#{intro},#{stock},#{categoryId}) <!-- insert into goods--> <!-- <trim prefix="(" suffix=")" suffixOverrides=",">--> <!-- <if test="gname != null">--> <!-- gname,--> <!-- </if>--> <!-- <if test="images1 != null">--> <!-- images1,--> <!-- </if>--> <!-- <if test="price != null">--> <!-- price,--> <!-- </if>--> <!-- </trim>--> <!-- <trim prefix="values (" suffix=")" suffixOverrides=",">--> <!-- <if test="gname != null">--> <!-- #{gname},--> <!-- </if>--> <!-- <if test=" images1 != null">--> <!-- #{images1},--> <!-- </if>--> <!-- <if test="images2 != null">--> <!-- images2--> <!-- </if>--> <!-- <if test="price != null">--> <!-- price,--> <!-- </if>--> <!-- </trim>--> </insert> <!--删除商品--> <delete id="del" parameterType="int"> delete from goods where gid = #{gid} </delete> <!--修改商品--> <update id="update" parameterType="goods"> -- update goods set gname=#{gname},images1=#{images1},images2=#{images2},price=#{price},intro=#[intro},stock=#{stock},categoryId=#{categoryId} -- where gid =#{gid} update goods <trim suffixOverrides=","> <set> <if test="gname != null"> gname=#{gname}, </if> <if test="images1 != null"> images1=#{images1}, </if> <if test="images2 != null"> images2=#{images2}, </if> <if test="price != null "> price=#{price}, <if test="intro != null"> intro=#[intro}, </if> </if> <if test="stock != null"> stock=#{stock}, </if> <if test="categoryId != null"> categoryId=#{categoryId} </if> where gid =#{gid} </set> </trim> </update> </mapper> 订单项 package cn.javabs.phonemall.entity; /** * 订单项 */ public class orderItem { private Integer id; //订单项编号 private Double price;// 每一项的小计 private Integer amount;// 每一项的数量小计 private Integer orderId;// 订单编号 private Integer goodsIs;// 商品的id private double total;// 总价格 private Goods goods;// 商品对象 public orderItem() { super(); } @Override public String toString() { return "orderItem{" + "id=" + id + ", price=" + price + ", amount=" + amount + ", orderId=" + orderId + ", goodsIs=" + goodsIs + ", total=" + total + ", goods=" + goods + '}'; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Double getPrice() { return price; } public void setPrice(Double price) { this.price = price; } public Integer getAmount() { return amount; } public void setAmount(Integer amount) { this.amount = amount; } public Integer getOrderId() { return orderId; } public void setOrderId(Integer orderId) { this.orderId = orderId; } public Integer getGoodsIs() { return goodsIs; } public void setGoodsIs(Integer goodsIs) { this.goodsIs = goodsIs; } public double getTotal() { return total; } public void setTotal(double total) { this.total = total; } public Goods getGoods() { return goods; } public void setGoods(Goods goods) { this.goods = goods; } public orderItem(Integer id, Double price, Integer amount, Integer orderId, Integer goodsIs, double total, Goods goods) { this.id = id; this.price = price; this.amount = amount; this.orderId = orderId; this.goodsIs = goodsIs; this.total = total; this.goods = goods; } } package cn.javabs.phonemall.mapper; import cn.javabs.phonemall.entity.orderItem; import com.alipay.api.domain.OrderItem; public interface OrderItemMapper { int deleteByPrimaryKey(Integer id); int insert(orderItem record); int insertSelective(OrderItem record); OrderItem selectByPrimaryKey(Integer id); int updateByPrimaryKeySelective(OrderItem record); int updateByPrimaryKey(OrderItem record); } package cn.javabs.phonemall.service.impl; import cn.javabs.phonemall.entity.Goods; import cn.javabs.phonemall.entity.Orders; import cn.javabs.phonemall.entity.Users; import cn.javabs.phonemall.entity.orderItem; import cn.javabs.phonemall.mapper.OrderItemMapper; import cn.javabs.phonemall.mapper.OrdersMapper; import cn.javabs.phonemall.service.GoodsService; import cn.javabs.phonemall.service.OrdersService; import cn.javabs.phonemall.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Date; import java.util.List; @Service("ordesService") @Transactional public class OrdersServiceImpl implements OrdersService { @Autowired @Qualifier("ordersMapper") private OrdersMapper ordersMapper; @Autowired @Qualifier("goodsService") private GoodsService goodsService; @Autowired @Qualifier("userService") private UserService userService; @Autowired @Qualifier("orderItemMapper") private OrderItemMapper orderItemMapper; /** * 查询所有订单 * * @param status * @return */ @Override public List<Orders> findAllOrders(Integer status) { List<Orders> ordersList=ordersMapper.findAllByStatuts(status); for (Orders order: ordersList){ // 获取订单的编号 Integer orderId = order.getOid(); // 调用 获取所有订单 方法 返回 所有订单订单项 List<orderItem> orderItemList = this.findAllItem(orderId); // 将所有的订单项 放入到订单中 order.setorderItems(orderItemList); // 获取用户编号 Integer userId = order.getUserid(); // 根据用户编号 获取 用户对象 Users user = userService.findUserById(userId); // 将用户对象封装订单中 order.setUsers(user); } return ordersList; } /** * 根据 订单编号查询订单信息 * * @param orderId * @return */ @Override public Orders findOrdersById(Integer orderId) { Orders orders= ordersMapper.selectByPrimaryKey(orderId); return orders; } /** * 获取某用户的所有订单 * * @param userId * @return */ @Override public List<Orders> findOrdersByUserId(Integer userId) { List<Orders> Orderslist = ordersMapper.getOrdersByUserId(userId); return null; } /** * 添加订单 * * @param goods * @return */ @Override public Orders addOrder(Goods goods) { ArrayList<orderItem> orderItems = new ArrayList<>(); orderItem o = addItem(goods); orderItems.add(o); Orders orders = new Orders(); orders.setorderItems(orderItems); return orders; } @Override public Orders find(int number) { return ordersMapper.selectByPrimaryKey(number); } /** * 保存订单 * * @param orders * @return */ @Override public int saveOrder(Orders orders) { orders.setStatus(Orders.STATUS_UPAY); // 未付款 // 设置下单时间 Date date = new Date(); // 系统时间 orders.setSystime(date); // 时间戳 ordersMapper.insert(orders); // 获取订单的编号 Integer orderId = orders.getOid(); // 获取订单项 List<orderItem> orderItem = orders.getorderItems(); for (cn.javabs.phonemall.entity.orderItem item: orderItem){ item.setOrderId(orderId); orderItemMapper.insert(item); } return 0; } /** * 创建订单项 */ public orderItem addItem(Goods goods){ orderItem item = new orderItem(); item.setGoodsIs(goods.getGid()); item.setAmount(1); item.setPrice(goods.getPrice()); item.setTotal(goods.getPrice()); Goods good = goodsService.findGoodsById(goods.getGid()); item.setGoods(goods); return item; } /** * 获取订单项 */ public List<orderItem> findAllItem(int orderId){ List<orderItem> orderItemList = ordersMapper.findorderItemList(); for (orderItem item : orderItemList){ Integer gid = item.getGoodsIs(); Goods goods = goodsService.findGoodsById(gid); item.setGoods(goods); } return orderItemList; } } package cn.javabs.phonemall.service; import cn.javabs.phonemall.entity.Goods; import cn.javabs.phonemall.entity.Orders; import java.util.List; public interface OrdersService { /** * 查询所有订单 * @param status * @return */ List<Orders> findAllOrders(Integer status); /** * 根据 订单编号查询订单信息 * @param oid * @return */ Orders findOrdersById(Integer oid); /** * 获取某用户的所有订单 * @param userId * @return */ List<Orders> findOrdersByUserId(Integer userId); /** * 添加订单 * @param goods * @return */ Orders addOrder(Goods goods); Orders find(int number); /** * 保存订单 * @param orders * @return */ int saveOrder(Orders orders); } <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="cn.javabs.phonemall.mapper.OrderItemMapper"> <resultMap id="BaseResultMap" type="cn.javabs.phonemall.entity.orderItem"> <id column="id" jdbcType="INTEGER" property="id" /> <result column="price" jdbcType="DOUBLE" property="price" /> <result column="amount" jdbcType="INTEGER" property="amount" /> <result column="orderId" jdbcType="INTEGER" property="orderid" /> <result column="goodsId" jdbcType="INTEGER" property="goodsid" /> </resultMap> <sql id="Update_By_Example_Where_Clause"> <where> <foreach collection="example.oredCriteria" item="criteria" separator="or"> <if test="criteria.valid"> <trim prefix="(" prefixOverrides="and" suffix=")"> <foreach collection="criteria.criteria" item="criterion"> <choose> <when test="criterion.noValue"> and ${criterion.condition} </when> <when test="criterion.singleValue"> and ${criterion.condition} #{criterion.value} </when> <when test="criterion.betweenValue"> and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} </when> <when test="criterion.listValue"> and ${criterion.condition} <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=","> #{listItem} </foreach> </when> </choose> </foreach> </trim> </if> </foreach> </where> </sql> <insert id="insert" keyColumn="id" keyProperty="id" parameterType="orderItem" useGeneratedKeys="true"> insert into ordersitem (price, amount, orderId, goodsId) values (#{price,jdbcType=DOUBLE}, #{amount,jdbcType=INTEGER}, #{orderid,jdbcType=INTEGER}, #{goodsid,jdbcType=INTEGER}) </insert> <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="orderItem" useGeneratedKeys="true"> insert into ordersitem <trim prefix="(" suffix=")" suffixOverrides=","> <if test="price != null"> price, </if> <if test="amount != null"> amount, </if> <if test="orderid != null"> orderId, </if> <if test="goodsid != null"> goodsId, </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="price != null"> #{price,jdbcType=DOUBLE}, </if> <if test="amount != null"> #{amount,jdbcType=INTEGER}, </if> <if test="orderid != null"> #{orderid,jdbcType=INTEGER}, </if> <if test="goodsid != null"> #{goodsid,jdbcType=INTEGER}, </if> </trim> </insert> <update id="updateByExampleSelective" parameterType="map"> update ordersitem <set> <if test="record.id != null"> id = #{record.id,jdbcType=INTEGER}, </if> <if test="record.price != null"> price = #{record.price,jdbcType=DOUBLE}, </if> <if test="record.amount != null"> amount = #{record.amount,jdbcType=INTEGER}, </if> <if test="record.orderid != null"> orderId = #{record.orderid,jdbcType=INTEGER}, </if> <if test="record.goodsid != null"> goodsId = #{record.goodsid,jdbcType=INTEGER}, </if> </set> <if test="_parameter != null"> <include refid="Update_By_Example_Where_Clause" /> </if> </update> <update id="updateByExample" parameterType="map"> update ordersitem set id = #{record.id,jdbcType=INTEGER}, price = #{record.price,jdbcType=DOUBLE}, amount = #{record.amount,jdbcType=INTEGER}, orderId = #{record.orderid,jdbcType=INTEGER}, goodsId = #{record.goodsid,jdbcType=INTEGER} <if test="_parameter != null"> <include refid="Update_By_Example_Where_Clause" /> </if> </update> <update id="updateByPrimaryKeySelective" parameterType="orderItem"> update ordersitem <set> <if test="price != null"> price = #{price,jdbcType=DOUBLE}, </if> <if test="amount != null"> amount = #{amount,jdbcType=INTEGER}, </if> <if test="orderid != null"> orderId = #{orderid,jdbcType=INTEGER}, </if> <if test="goodsid != null"> goodsId = #{goodsid,jdbcType=INTEGER}, </if> </set> where id = #{id,jdbcType=INTEGER} </update> <update id="updateByPrimaryKey" parameterType="orderItem"> update ordersitem set price = #{price,jdbcType=DOUBLE}, amount = #{amount,jdbcType=INTEGER}, orderId = #{orderid,jdbcType=INTEGER}, goodsId = #{goodsid,jdbcType=INTEGER} where id = #{id,jdbcType=INTEGER} </update> </mapper>

    4 订单

    package cn.javabs.phonemall.entity; import java.io.Serializable; import java.util.Date; import java.util.List; /** * orders * @author */ public class Orders implements Serializable{ // 订单状态 public static final int STATUS_UPAY=1;// 未付款 public static final int STATUS_PAYED=2;// 已付款 public static final int STATUS_SEND=3;// 已发货 public static final int STATUS_FINISH=4;// 已完成 //支付方式 public static final int PAYTYPE_WECHAT = 1 ;//微笑支付 public static final int PAYTYPE_ALIPAY = 2 ;//支付宝支付 public static final int PAYTYPE_OFFINE = 3 ;//货到付款 private Integer oid; //订单表 private Integer total;//总价格 private Integer amount;//商品总价 private Integer status;// 订单状态(1未付款/2已付款/ 3已发货/ 4已完成) private Integer paytype;//支付方式(1微信/2支付宝/3货到付款) private String realname;//收货人 private String phone;//收货电话 private String address; //收货地址 private Date systime; //下单时间 private Integer userid; //下单用户 private Users users; // 用户对象 public Integer getOid() { return oid; } public void setOid(Integer oid) { this.oid = oid; } public Integer getTotal() { return total; } public void setTotal(Integer total) { this.total = total; } public Integer getAmount() { return amount; } public void setAmount(Integer amount) { this.amount = amount; } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } public Integer getPaytype() { return paytype; } public void setPaytype(Integer paytype) { this.paytype = paytype; } public String getRealname() { return realname; } /** * 设置下单用户 * @param realname */ public void setRealname(String realname) { this.realname = realname==null?null:realname.trim();//trim() 去掉字符串两端的空格 } public String getPhone() { return phone; } /** * 设置客户电话 * @param phone */ public void setPhone(String phone) { this.phone = phone==null?null:phone.trim(); } public String getAddress() { return address; } /** * 设置客户地址 * @param address */ public void setAddress(String address) { this.address = address==null?null:address.trim(); } public Date getSystime() { return systime; } public void setSystime(Date systime) { this.systime = systime; } public Integer getUserid() { return userid; } public void setUserid(Integer userid) { this.userid = userid; } public Users getUsers() { return users; } public void setUsers(Users users) { this.users = users; } public List<orderItem> getorderItems() { return orderItems; } public void setorderItems(List<orderItem> orderItems) { this.orderItems = orderItems; } private List<orderItem> orderItems; // 订单项 } package cn.javabs.phonemall.mapper; import cn.javabs.phonemall.entity.Orders; import cn.javabs.phonemall.entity.orderItem; import org.apache.ibatis.annotations.Select; import java.util.List; //import cn.javabs.phonemall.entity.OrdersExample; public interface OrdersMapper { // long countByExample(OrdersExample example); // int deleteByExample(OrdersExample example); int deleteByPrimaryKey(Integer oid); int insert(Orders record); int insertSelective(Orders record); // List<Orders> selectByExample(OrdersExample example); Orders selectByPrimaryKey(Integer oid); // int updateByExampleSelective(@Param("record") Orders record, @Param("example") OrdersExample example); // int updateByExample(@Param("record") Orders record, @Param("example") OrdersExample example); int updateByPrimaryKeySelective(Orders record); int updateByPrimaryKey(Orders record); /** * 查询所有订单 * @param status * @return */ @Select("select * from orders where status = #{status}") List<Orders> findAllByStatuts(Integer status); @Select("select * from orders where orderId = #{orderId} ") List<orderItem> findorderItemList(); @Select("select * from orders where userId={userId}") List<Orders> getOrdersByUserId(Integer userId); /** * 保存订单 * @param orders */ int add(Orders orders); int add(orderItem item); } package cn.javabs.phonemall.service.impl; import cn.javabs.phonemall.entity.Goods; import cn.javabs.phonemall.entity.Orders; import cn.javabs.phonemall.entity.Users; import cn.javabs.phonemall.entity.orderItem; import cn.javabs.phonemall.mapper.OrderItemMapper; import cn.javabs.phonemall.mapper.OrdersMapper; import cn.javabs.phonemall.service.GoodsService; import cn.javabs.phonemall.service.OrdersService; import cn.javabs.phonemall.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Date; import java.util.List; @Service("ordesService") @Transactional public class OrdersServiceImpl implements OrdersService { @Autowired @Qualifier("ordersMapper") private OrdersMapper ordersMapper; @Autowired @Qualifier("goodsService") private GoodsService goodsService; @Autowired @Qualifier("userService") private UserService userService; @Autowired @Qualifier("orderItemMapper") private OrderItemMapper orderItemMapper; /** * 查询所有订单 * * @param status * @return */ @Override public List<Orders> findAllOrders(Integer status) { List<Orders> ordersList=ordersMapper.findAllByStatuts(status); for (Orders order: ordersList){ // 获取订单的编号 Integer orderId = order.getOid(); // 调用 获取所有订单 方法 返回 所有订单订单项 List<orderItem> orderItemList = this.findAllItem(orderId); // 将所有的订单项 放入到订单中 order.setorderItems(orderItemList); // 获取用户编号 Integer userId = order.getUserid(); // 根据用户编号 获取 用户对象 Users user = userService.findUserById(userId); // 将用户对象封装订单中 order.setUsers(user); } return ordersList; } /** * 根据 订单编号查询订单信息 * * @param orderId * @return */ @Override public Orders findOrdersById(Integer orderId) { Orders orders= ordersMapper.selectByPrimaryKey(orderId); return orders; } /** * 获取某用户的所有订单 * * @param userId * @return */ @Override public List<Orders> findOrdersByUserId(Integer userId) { List<Orders> Orderslist = ordersMapper.getOrdersByUserId(userId); return null; } /** * 添加订单 * * @param goods * @return */ @Override public Orders addOrder(Goods goods) { ArrayList<orderItem> orderItems = new ArrayList<>(); orderItem o = addItem(goods); orderItems.add(o); Orders orders = new Orders(); orders.setorderItems(orderItems); return orders; } @Override public Orders find(int number) { return ordersMapper.selectByPrimaryKey(number); } /** * 保存订单 * * @param orders * @return */ @Override public int saveOrder(Orders orders) { orders.setStatus(Orders.STATUS_UPAY); // 未付款 // 设置下单时间 Date date = new Date(); // 系统时间 orders.setSystime(date); // 时间戳 ordersMapper.insert(orders); // 获取订单的编号 Integer orderId = orders.getOid(); // 获取订单项 List<orderItem> orderItem = orders.getorderItems(); for (cn.javabs.phonemall.entity.orderItem item: orderItem){ item.setOrderId(orderId); orderItemMapper.insert(item); } return 0; } /** * 创建订单项 */ public orderItem addItem(Goods goods){ orderItem item = new orderItem(); item.setGoodsIs(goods.getGid()); item.setAmount(1); item.setPrice(goods.getPrice()); item.setTotal(goods.getPrice()); Goods good = goodsService.findGoodsById(goods.getGid()); item.setGoods(goods); return item; } /** * 获取订单项 */ public List<orderItem> findAllItem(int orderId){ List<orderItem> orderItemList = ordersMapper.findorderItemList(); for (orderItem item : orderItemList){ Integer gid = item.getGoodsIs(); Goods goods = goodsService.findGoodsById(gid); item.setGoods(goods); } return orderItemList; } } package cn.javabs.phonemall.service; import cn.javabs.phonemall.entity.Goods; import cn.javabs.phonemall.entity.Orders; import java.util.List; public interface OrdersService { /** * 查询所有订单 * @param status * @return */ List<Orders> findAllOrders(Integer status); /** * 根据 订单编号查询订单信息 * @param oid * @return */ Orders findOrdersById(Integer oid); /** * 获取某用户的所有订单 * @param userId * @return */ List<Orders> findOrdersByUserId(Integer userId); /** * 添加订单 * @param goods * @return */ Orders addOrder(Goods goods); Orders find(int number); /** * 保存订单 * @param orders * @return */ int saveOrder(Orders orders); } <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="cn.javabs.phonemall.mapper.OrdersMapper"> <resultMap id="BaseResultMap" type="cn.javabs.phonemall.entity.Orders"> <id column="oid" jdbcType="INTEGER" property="oid" /> <result column="total" jdbcType="INTEGER" property="total" /> <result column="amount" jdbcType="INTEGER" property="amount" /> <result column="status" jdbcType="INTEGER" property="status" /> <result column="paytype" jdbcType="INTEGER" property="paytype" /> <result column="realname" jdbcType="VARCHAR" property="realname" /> <result column="phone" jdbcType="VARCHAR" property="phone" /> <result column="address" jdbcType="VARCHAR" property="address" /> <result column="systime" jdbcType="TIMESTAMP" property="systime" /> <result column="userId" jdbcType="INTEGER" property="userid" /> </resultMap> <sql id="Example_Where_Clause"> <where> <foreach collection="oredCriteria" item="criteria" separator="or"> <if test="criteria.valid"> <trim prefix="(" prefixOverrides="and" suffix=")"> <foreach collection="criteria.criteria" item="criterion"> <choose> <when test="criterion.noValue"> and ${criterion.condition} </when> <when test="criterion.singleValue"> and ${criterion.condition} #{criterion.value} </when> <when test="criterion.betweenValue"> and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} </when> <when test="criterion.listValue"> and ${criterion.condition} <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=","> #{listItem} </foreach> </when> </choose> </foreach> </trim> </if> </foreach> </where> </sql> <sql id="Update_By_Example_Where_Clause"> <where> <foreach collection="example.oredCriteria" item="criteria" separator="or"> <if test="criteria.valid"> <trim prefix="(" prefixOverrides="and" suffix=")"> <foreach collection="criteria.criteria" item="criterion"> <choose> <when test="criterion.noValue"> and ${criterion.condition} </when> <when test="criterion.singleValue"> and ${criterion.condition} #{criterion.value} </when> <when test="criterion.betweenValue"> and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} </when> <when test="criterion.listValue"> and ${criterion.condition} <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=","> #{listItem} </foreach> </when> </choose> </foreach> </trim> </if> </foreach> </where> </sql> <sql id="Base_Column_List"> oid, total, amount, `status`, paytype, realname, phone, address, systime, userId </sql> <!-- <select id="selectByExample" parameterType="OrdersExample" resultMap="BaseResultMap">--> <!-- select--> <!-- <if test="distinct">--> <!-- distinct--> <!-- </if>--> <!-- <include refid="Base_Column_List" />--> <!-- from orders--> <!-- <if test="_parameter != null">--> <!-- <include refid="Example_Where_Clause" />--> <!-- </if>--> <!-- <if test="orderByClause != null">--> <!-- order by ${orderByClause}--> <!-- </if>--> <!-- <if test="limit != null">--> <!-- <if test="offset != null">--> <!-- limit ${offset}, ${limit}--> <!-- </if>--> <!-- <if test="offset == null">--> <!-- limit ${limit}--> <!-- </if>--> <!-- </if>--> <!-- </select>--> <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap"> select <include refid="Base_Column_List" /> from orders where oid = #{oid,jdbcType=INTEGER} </select> <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer"> delete from orders where oid = #{oid,jdbcType=INTEGER} </delete> <!-- <delete id="deleteByExample" parameterType="OrdersExample">--> <!-- delete from orders--> <!-- <if test="_parameter != null">--> <!-- <include refid="Example_Where_Clause" />--> <!-- </if>--> <!-- </delete>--> <insert id="insert" keyColumn="oid" keyProperty="oid" parameterType="Orders" useGeneratedKeys="true"> -- 在语句插入之后执行 <selectKey order="AFTER" resultType="int" keyProperty="oid"> select last_insert_id() </selectKey> insert into orders (total, amount, `status`, paytype, realname, phone, address, systime, userId ) values (#{total,jdbcType=INTEGER}, #{amount,jdbcType=INTEGER}, #{status,jdbcType=INTEGER}, #{paytype,jdbcType=INTEGER}, #{realname,jdbcType=VARCHAR}, #{phone,jdbcType=VARCHAR}, #{address,jdbcType=VARCHAR}, #{systime,jdbcType=TIMESTAMP}, #{userid,jdbcType=INTEGER} ) </insert> <insert id="insertSelective" keyColumn="oid" keyProperty="oid" parameterType="Orders" useGeneratedKeys="true"> insert into orders <trim prefix="(" suffix=")" suffixOverrides=","> <if test="total != null"> total, </if> <if test="amount != null"> amount, </if> <if test="status != null"> `status`, </if> <if test="paytype != null"> paytype, </if> <if test="realname != null"> realname, </if> <if test="phone != null"> phone, </if> <if test="address != null"> address, </if> <if test="systime != null"> systime, </if> <if test="userid != null"> userId, </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="total != null"> #{total,jdbcType=INTEGER}, </if> <if test="amount != null"> #{amount,jdbcType=INTEGER}, </if> <if test="status != null"> #{status,jdbcType=INTEGER}, </if> <if test="paytype != null"> #{paytype,jdbcType=INTEGER}, </if> <if test="realname != null"> #{realname,jdbcType=VARCHAR}, </if> <if test="phone != null"> #{phone,jdbcType=VARCHAR}, </if> <if test="address != null"> #{address,jdbcType=VARCHAR}, </if> <if test="systime != null"> #{systime,jdbcType=TIMESTAMP}, </if> <if test="userid != null"> #{userid,jdbcType=INTEGER}, </if> </trim> </insert> <!-- <select id="countByExample" parameterType="OrdersExample" resultType="java.lang.Long">--> <!-- select count(*) from orders--> <!-- <if test="_parameter != null">--> <!-- <include refid="Example_Where_Clause" />--> <!-- </if>--> <!-- </select>--> <update id="updateByExampleSelective" parameterType="map"> update orders <set> <if test="record.oid != null"> oid = #{record.oid,jdbcType=INTEGER}, </if> <if test="record.total != null"> total = #{record.total,jdbcType=INTEGER}, </if> <if test="record.amount != null"> amount = #{record.amount,jdbcType=INTEGER}, </if> <if test="record.status != null"> `status` = #{record.status,jdbcType=INTEGER}, </if> <if test="record.paytype != null"> paytype = #{record.paytype,jdbcType=INTEGER}, </if> <if test="record.realname != null"> realname = #{record.realname,jdbcType=VARCHAR}, </if> <if test="record.phone != null"> phone = #{record.phone,jdbcType=VARCHAR}, </if> <if test="record.address != null"> address = #{record.address,jdbcType=VARCHAR}, </if> <if test="record.systime != null"> systime = #{record.systime,jdbcType=TIMESTAMP}, </if> <if test="record.userid != null"> userId = #{record.userid,jdbcType=INTEGER}, </if> </set> <if test="_parameter != null"> <include refid="Update_By_Example_Where_Clause" /> </if> </update> <update id="updateByExample" parameterType="map"> update orders set oid = #{record.oid,jdbcType=INTEGER}, total = #{record.total,jdbcType=INTEGER}, amount = #{record.amount,jdbcType=INTEGER}, `status` = #{record.status,jdbcType=INTEGER}, paytype = #{record.paytype,jdbcType=INTEGER}, realname = #{record.realname,jdbcType=VARCHAR}, phone = #{record.phone,jdbcType=VARCHAR}, address = #{record.address,jdbcType=VARCHAR}, systime = #{record.systime,jdbcType=TIMESTAMP}, userId = #{record.userid,jdbcType=INTEGER} <if test="_parameter != null"> <include refid="Update_By_Example_Where_Clause" /> </if> </update> <update id="updateByPrimaryKeySelective" parameterType="Orders"> update orders <set> <if test="total != null"> total = #{total,jdbcType=INTEGER}, </if> <if test="amount != null"> amount = #{amount,jdbcType=INTEGER}, </if> <if test="status != null"> `status` = #{status,jdbcType=INTEGER}, </if> <if test="paytype != null"> paytype = #{paytype,jdbcType=INTEGER}, </if> <if test="realname != null"> realname = #{realname,jdbcType=VARCHAR}, </if> <if test="phone != null"> phone = #{phone,jdbcType=VARCHAR}, </if> <if test="address != null"> address = #{address,jdbcType=VARCHAR}, </if> <if test="systime != null"> systime = #{systime,jdbcType=TIMESTAMP}, </if> <if test="userid != null"> userId = #{userid,jdbcType=INTEGER}, </if> </set> where oid = #{oid,jdbcType=INTEGER} </update> <update id="updateByPrimaryKey" parameterType="Orders"> update orders set total = #{total,jdbcType=INTEGER}, amount = #{amount,jdbcType=INTEGER}, `status` = #{status,jdbcType=INTEGER}, paytype = #{paytype,jdbcType=INTEGER}, realname = #{realname,jdbcType=VARCHAR}, phone = #{phone,jdbcType=VARCHAR}, address = #{address,jdbcType=VARCHAR}, systime = #{systime,jdbcType=TIMESTAMP}, userId = #{userid,jdbcType=INTEGER} where oid = #{oid,jdbcType=INTEGER} </update> </mapper> 推荐 package cn.javabs.phonemall.entity; /** * 推荐实体类 */ public class Recommend { public static final Byte CATEGORY_SCROLL = 1; //条幅推荐 public static final Byte CATEGORY_FASHIONL = 2;// 热销推荐 public static final Byte CATEGORY_PERFONHACE = 3;//性价比 private Integer rid; private Byte type; private Integer goodsId; private Goods goods; @Override public String toString() { return "Recommend{" + "rid=" + rid + ", type=" + type + ", goodsId=" + goodsId + ", goods=" + goods + '}'; } public Integer getRid() { return rid; } public void setRid(Integer rid) { this.rid = rid; } public Byte getType() { return type; } public void setType(Byte type) { this.type = type; } public Integer getGoodsId() { return goodsId; } public void setGoodsId(Integer goodsId) { this.goodsId = goodsId; } public Goods getGoods() { return goods; } public void setGoods(Goods goods) { this.goods = goods; } } package cn.javabs.phonemall.mapper; import cn.javabs.phonemall.entity.Recommend; import org.apache.ibatis.annotations.Select; import org.springframework.stereotype.Repository; import java.util.List; @Repository("recommendMapper") public interface RecommendMapper { /** * 根据id商品 ,可以有都个推荐 * @param goodsId * @return */ @Select("select * from recommend where goodsId") List<Recommend> findGoodsId(Integer goodsId); /** * 根据推荐id查询 * @param rid * @return */ @Select("select * from recommend where rid=#{rid}") Recommend findById(Integer rid); /** * 获取所有 * @param type * @return */ @Select("select * from recommend where type=#{type} order by rid") List<Recommend> findAll(Byte type); /** * 添加推荐 * @param recommend * @return */ int insert(Recommend recommend); /** * 删除推荐 * @param rid * @return */ int del(Integer rid); /** * 修改推荐 * @param recommend * @return */ int update(Recommend recommend); } package cn.javabs.phonemall.service.impl; import cn.javabs.phonemall.entity.Goods; import cn.javabs.phonemall.entity.Recommend; import cn.javabs.phonemall.mapper.RecommendMapper; import cn.javabs.phonemall.service.GoodsService; import cn.javabs.phonemall.service.RecommendService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; @Service("recommendService") @Transactional public class RecommendServiceImpl implements RecommendService { @Autowired @Qualifier("recommendMapper") private RecommendMapper recommendMapper; @Autowired @Qualifier("goodsService") private GoodsService goodsService; /** * 获取所有 * * @param type * @return */ @Override public List<Recommend> findAll(Byte type) { // 1.根据类型获取推荐 List<Recommend> recommendList= recommendMapper.findAll(type); // 通过循环 取出所有推荐 for (Recommend recommend:recommendList){ // 从每一个推荐取出商品的id Integer goodsId = recommend.getGoodsId(); // 通过商品id 获取商品 Goods goods = goodsService.findGoodsById(goodsId); // 将商品对象放到推荐中表 recommend.setGoods(goods); } return recommendList; } /** * 根据id商品 ,可以有都个推荐 * * @param goodsId * @return */ @Override public List<Recommend> finaRecommendByGoodsId(Integer goodsId) { return recommendMapper.findGoodsId(goodsId); } /** * 根据推荐id查询 * * @param rid * @return */ @Override public Recommend findRecommendById(Integer rid) { return recommendMapper.findById(rid); } /** * 添加推荐 * * @param recommend * @return */ @Override public int addRecommend(Recommend recommend) { return recommendMapper.insert(recommend); } /** * 删除推荐 * * @param rid * @return */ @Override public int delRecommend(Integer rid) { return recommendMapper.del(rid); } /** * 修改推荐 * * @param recommend * @return */ @Override public int editRecommend(Recommend recommend) { return recommendMapper.update(recommend); } } package cn.javabs.phonemall.service; import cn.javabs.phonemall.entity.Recommend; import java.util.List; /** * 条幅推荐 * 热销推荐 * 性价比(海报推荐,轮播推荐) */ public interface RecommendService { /** * 获取所有 * @param type * @return */ List<Recommend> findAll(Byte type); /** * 根据id商品 ,可以有都个推荐 * @param goodsId * @return */ List<Recommend> finaRecommendByGoodsId(Integer goodsId); /** * 根据推荐id查询 * @param rid * @return */ Recommend findRecommendById(Integer rid); /** * 添加推荐 * @param recommend * @return */ int addRecommend(Recommend recommend); /** * 删除推荐 * @param rid * @return */ int delRecommend(Integer rid); /** * 修改推荐 * @param recommend * @return */ int editRecommend(Recommend recommend); } <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- namespace 表示命名空间 --> <mapper namespace="cn.javabs.phonemall.mapper.RecommendMapper"> <!-- SQL语句 --> <!-- 添加推荐--> <insert id="insert"> insert into recommend <trim prefix="(" suffix=")" suffixOverrides=","> <if test="rid != null"> rid, </if> <if test="type != null"> type , </if> <if test="goodsId != null"> goodsId, </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="rid != null"> #{rid}, </if> <if test="type != null"> #{type}, </if> <if test="goodsId != null"> #{goodId}, </if> </trim> </insert> <!-- 删除推荐--> <delete id="det"> delete from recommend <where> <if test="rid != null"> rid= #{rid} </if> </where> </delete> <!-- 修改推荐--> <update id="update"> update recommend <trim suffixOverrides=","> <set> <if test="type != null"> type = #{type}, </if> <if test="goodsId != null"> goodsId =#{goodsId}, </if> </set> </trim> where rid = #{rid} </update> </mapper> 用户 package cn.javabs.phonemall.entity; import java.io.Serializable; /** * users * @author */ public class Users implements Serializable { private Integer uid; private String username; private String password; private String realname; private String phone; private String address; public Users() { super(); } @Override public String toString() { return "Users{" + "uid=" + uid + ", username='" + username + '\'' + ", password='" + password + '\'' + ", realname='" + realname + '\'' + ", phone='" + phone + '\'' + ", address='" + address + '\'' + '}'; } public Users(Integer uid, String username, String password, String realname, String phone, String address) { this.uid = uid; this.username = username; this.password = password; this.realname = realname; this.phone = phone; this.address = address; } public Integer getUid() { return uid; } public void setUid(Integer uid) { this.uid = uid; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getRealname() { return realname; } public void setRealname(String realname) { this.realname = realname; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } } ```java package cn.javabs.phonemall.mapper; import cn.javabs.phonemall.entity.Users; import cn.javabs.phonemall.entity.UsersExample; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; public interface UsersMapper { /** * 查询总条数 * @param example * @return */ long countByExample(UsersExample example); int deleteByExample(UsersExample example); /** * 删除用户 * @param uid * @return */ int deleteByPrimaryKey(Integer uid); /** * 添加用户 * @param record * @return */ int insert(Users record); int insertSelective(Users record); // List<Users> selectByExample(UsersExample example); /** * 根据id 查找 * @param uid * @return */ Users selectByPrimaryKey(Integer uid); // int updateByExampleSelective(@Param("record") Users record, @Param("example") UsersExample example); // int updateByExample(@Param("record") Users record, @Param("example") UsersExample example); /** * 修改用户 * @param record * @return */ int updateByPrimaryKeySelective(Users record); int updateByPrimaryKey(Users record); /** * 验证用户密码 * @param username * @param password * @return */ @Select("select * from users where username= #{username} and password = #{password") Users findUserByUsernameAndPassword(@Param("username") String username, @Param("password") String password); /** * 用户是否存在 * @param username * @return */ @Select("select * from users where username=#{username}") Users findUsername(String username); /** * 分页查询用户(分页) * @param startIndex * @param pageSize * @return */ @Select("select * from users order by uid limit #{startIndex},#{pageSize}") List<Users> findAll(@Param("startIndex") int startIndex, @Param("pageSize") int pageSize); /** * 模糊查询 * @param username * @return */ @Select("select * from users where username like concat('%',#{username},'%')") List<Users> findUsernameByLikeUsername(String username); } ```java package cn.javabs.phonemall.service.impl; import cn.javabs.phonemall.entity.Users; import cn.javabs.phonemall.mapper.UsersMapper; import cn.javabs.phonemall.service.UserService; import cn.javabs.phonemall.util.Md55Util; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; @Service("userService") @Transactional public class UsersServiceImpl implements UserService { @Autowired @Qualifier("usersMapper") private UsersMapper usersMapper; /** * 验证用户密码 * * @param username * @param password * @return */ @Override public boolean checkUser(String username, String password) { return usersMapper.findUserByUsernameAndPassword(username, Md55Util.encode(password))!=null; } /** * 判断用户是否存在 * * @param username * @return */ @Override public boolean isExist(String username) { return usersMapper.findUsername(username) != null; } /** * 添加用户 * * @param users * @return */ @Override public int addUser(Users users) { // 先获取密码 String password = users.getPassword(); // 再将密码进行加密 String encode = Md55Util.encode(password); // 得到加密后的密码设置 users.setPassword(encode); return usersMapper.insert(users); } /** * 删除用户 * * @param uid * @return */ @Override public int delUser(Integer uid) { return usersMapper.deleteByPrimaryKey(uid); } /** * 修改用户 * * @param users * @return */ @Override public int editUser(Users users) { return usersMapper.updateByPrimaryKeySelective(users); } /** * 根据用户 UID 查询用户 * * @param uid * @return */ @Override public Users findUserById(Integer uid) { return usersMapper.selectByPrimaryKey(uid); } /** * 分页查询用户(分页) * * @param startIndex * @param pageSize * @return */ @Override public List<Users> findAllUsers(int startIndex, int pageSize) { return usersMapper.findAll(startIndex,pageSize); } /** * 模胡查询 * * @param username * @return */ @Override public List<Users> findUserByLikeName(String username) { return usersMapper.findUsernameByLikeUsername(username); } /** * 查询用户的总条数 * * @return */ @Override public int findTotalItem() { Long num = usersMapper.countByExample(null); int number = num.intValue(); return number; } } package cn.javabs.phonemall.service; import cn.javabs.phonemall.entity.Users; import java.util.List; public interface UserService { /** * 验证用户密码 * @param username * @param password * @return */ boolean checkUser(String username,String password); /** * 判断用户是否存在 * @param username * @return */ boolean isExist(String username); /** * 添加用户 * @param users * @return */ int addUser(Users users); /** * 删除用户 * @param uid * @return */ int delUser(Integer uid); /** * 修改用户 * @param users * @return */ int editUser(Users users); /** * 根据用户 UID 查询用户 * @param uid * @return */ Users findUserById(Integer uid); /** * 分页查询用户 * @param startIndex * @param pageSize * @return */ List<Users> findAllUsers(int startIndex, int pageSize); /** * 模胡查询 * @param username * @return */ List<Users> findUserByLikeName(String username); /** * 查询用户的总条数 * @return */ int findTotalItem(); } <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="cn.javabs.phonemall.entity.Users"> <resultMap id="BaseResultMap" type="Users"> <id column="uid" jdbcType="INTEGER" property="uid" /> <result column="username" jdbcType="VARCHAR" property="username" /> <result column="password" jdbcType="VARCHAR" property="password" /> <result column="realname" jdbcType="VARCHAR" property="realname" /> <result column="phone" jdbcType="VARCHAR" property="phone" /> <result column="address" jdbcType="VARCHAR" property="address" /> </resultMap> <sql id="Example_Where_Clause"> <where> <foreach collection="oredCriteria" item="criteria" separator="or"> <if test="criteria.valid"> <trim prefix="(" prefixOverrides="and" suffix=")"> <foreach collection="criteria.criteria" item="criterion"> <choose> <when test="criterion.noValue"> and ${criterion.condition} </when> <when test="criterion.singleValue"> and ${criterion.condition} #{criterion.value} </when> <when test="criterion.betweenValue"> and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} </when> <when test="criterion.listValue"> and ${criterion.condition} <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=","> #{listItem} </foreach> </when> </choose> </foreach> </trim> </if> </foreach> </where> </sql> <sql id="Update_By_Example_Where_Clause"> <where> <foreach collection="example.oredCriteria" item="criteria" separator="or"> <if test="criteria.valid"> <trim prefix="(" prefixOverrides="and" suffix=")"> <foreach collection="criteria.criteria" item="criterion"> <choose> <when test="criterion.noValue"> and ${criterion.condition} </when> <when test="criterion.singleValue"> and ${criterion.condition} #{criterion.value} </when> <when test="criterion.betweenValue"> and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} </when> <when test="criterion.listValue"> and ${criterion.condition} <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=","> #{listItem} </foreach> </when> </choose> </foreach> </trim> </if> </foreach> </where> </sql> <sql id="Base_Column_List"> `uid`, username, `password`, realname, phone, address </sql> <select id="selectByExample" parameterType="cn.javabs.phonemall.entity.UsersExample" resultMap="BaseResultMap"> select <if test="distinct"> distinct </if> <include refid="Base_Column_List" /> from users <if test="_parameter != null"> <include refid="Example_Where_Clause" /> </if> <if test="orderByClause != null"> order by ${orderByClause} </if> <if test="limit != null"> <if test="offset != null"> limit ${offset}, ${limit} </if> <if test="offset == null"> limit ${limit} </if> </if> </select> <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap"> select <include refid="Base_Column_List" /> from users where `uid` = #{uid,jdbcType=INTEGER} </select> <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer"> delete from users where `uid` = #{uid,jdbcType=INTEGER} </delete> <delete id="deleteByExample" parameterType="cn.javabs.phonemall.entity.UsersExample"> delete from users <if test="_parameter != null"> <include refid="Example_Where_Clause" /> </if> </delete> <insert id="insert" keyColumn="uid" keyProperty="uid" parameterType="Users" useGeneratedKeys="true"> insert into users (username, `password`, realname, phone, address) values (#{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{realname,jdbcType=VARCHAR}, #{phone,jdbcType=VARCHAR}, #{address,jdbcType=VARCHAR}) </insert> <insert id="insertSelective" keyColumn="uid" keyProperty="uid" parameterType="Users" useGeneratedKeys="true"> insert into users <trim prefix="(" suffix=")" suffixOverrides=","> <if test="username != null"> username, </if> <if test="password != null"> `password`, </if> <if test="realname != null"> realname, </if> <if test="phone != null"> phone, </if> <if test="address != null"> address, </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="username != null"> #{username,jdbcType=VARCHAR}, </if> <if test="password != null"> #{password,jdbcType=VARCHAR}, </if> <if test="realname != null"> #{realname,jdbcType=VARCHAR}, </if> <if test="phone != null"> #{phone,jdbcType=VARCHAR}, </if> <if test="address != null"> #{address,jdbcType=VARCHAR}, </if> </trim> </insert> <select id="countByExample" parameterType="cn.javabs.phonemall.entity.UsersExample" resultType="java.lang.Long"> select count(*) from users <if test="_parameter != null"> <include refid="Example_Where_Clause" /> </if> </select> <update id="updateByExampleSelective" parameterType="map"> update users <set> <if test="record.uid != null"> `uid` = #{record.uid,jdbcType=INTEGER}, </if> <if test="record.username != null"> username = #{record.username,jdbcType=VARCHAR}, </if> <if test="record.password != null"> `password` = #{record.password,jdbcType=VARCHAR}, </if> <if test="record.realname != null"> realname = #{record.realname,jdbcType=VARCHAR}, </if> <if test="record.phone != null"> phone = #{record.phone,jdbcType=VARCHAR}, </if> <if test="record.address != null"> address = #{record.address,jdbcType=VARCHAR}, </if> </set> <if test="_parameter != null"> <include refid="Update_By_Example_Where_Clause" /> </if> </update> <update id="updateByExample" parameterType="map"> update users set `uid` = #{record.uid,jdbcType=INTEGER}, username = #{record.username,jdbcType=VARCHAR}, `password` = #{record.password,jdbcType=VARCHAR}, realname = #{record.realname,jdbcType=VARCHAR}, phone = #{record.phone,jdbcType=VARCHAR}, address = #{record.address,jdbcType=VARCHAR} <if test="_parameter != null"> <include refid="Update_By_Example_Where_Clause" /> </if> </update> <update id="updateByPrimaryKeySelective" parameterType="cn.javabs.phonemall.entity.Users"> update users <set> <if test="username != null"> username = #{username,jdbcType=VARCHAR}, </if> <if test="password != null"> `password` = #{password,jdbcType=VARCHAR}, </if> <if test="realname != null"> realname = #{realname,jdbcType=VARCHAR}, </if> <if test="phone != null"> phone = #{phone,jdbcType=VARCHAR}, </if> <if test="address != null"> address = #{address,jdbcType=VARCHAR}, </if> </set> where `uid` = #{uid,jdbcType=INTEGER} </update> <update id="updateByPrimaryKey" parameterType="cn.javabs.phonemall.entity.Users"> update users set username = #{username,jdbcType=VARCHAR}, `password` = #{password,jdbcType=VARCHAR}, realname = #{realname,jdbcType=VARCHAR}, phone = #{phone,jdbcType=VARCHAR}, address = #{address,jdbcType=VARCHAR} where `uid` = #{uid,jdbcType=INTEGER} </update> </mapper> 工具类 package cn.javabs.phonemall.util; import org.springframework.util.Base64Utils; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** * 密码加密安全工具箱 */ public class Md55Util { public final static String md5(String pass){ MessageDigest messageDigest = null; try { messageDigest = MessageDigest.getInstance("MD5"); } catch (NoSuchAlgorithmException e) { throw new RuntimeException(e); } // byte[] bytes = pass.getBytes(); // messageDigest.update(bytes); // byte[] digest = messageDigest.digest(); // Base64Utils.encodeToString(digest) messageDigest.update(pass.getBytes()); return Base64Utils.encodeToString(messageDigest.digest()); } /** * 机密成字符串 * @param pass * @return */ public final static String shai(String pass){ MessageDigest messageDigest = null; try { messageDigest = MessageDigest.getInstance("SHA-1"); } catch (NoSuchAlgorithmException e) { throw new RuntimeException(e); } messageDigest.update(pass.getBytes()); return Base64Utils.encodeToString(messageDigest.digest()); } /** * 通过特点的方式加密 * @param pass * @return */ public final static String encode(String pass){ return md5(shai(md5(pass))); } } package cn.javabs.phonemall.util; import org.springframework.web.context.ContextLoader; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Objects; import java.util.Random; /** * 上传的工具类 */ public class UploadUtil { /** * 图片上传 * @param file * @return */ public static String fileUpload(MultipartFile file) throws IOException { // 1.是否有上传文件 // 2. 文件是不是空的,上传的文件名是不是空的 if (Objects.nonNull(file) || file.isEmpty() || Objects.isNull(file.getOriginalFilename())){ // 如果是空接是空的 return null; } // 2.明确有上传文件 String savePath="pic";// 保存文件的目录 String filename = file.getOriginalFilename();// 获取上传文件的文件名称 String path = ContextLoader.getCurrentWebApplicationContext().getServletContext().getRealPath("/")+savePath; // 上传文件一样就报 500 // Date date = new Date(); // SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss"); // String currentTime = sdf.format(date); // 获取文件的后缀名 String suffix = filename.substring(filename.lastIndexOf(".") + 1, filename.length()); // 简设 currenTime 时间戳 String currentTime = new SimpleDateFormat("yyyyMMddhhmmss").format(new Date())+new Random().nextInt(899)+100;// 随机范围:100-999 filename = currentTime + "."+suffix; File saveFile = new File(path, filename); // 如果不存在创建 mkdirs.makeeDirectores if (!saveFile.exists()){ saveFile.mkdirs(); } System.out.println("输出文件路径:"+saveFile.getPath()); file.transferTo(saveFile); return savePath+"/"+filename ; } }
    三、文件构造

    Processed: 0.032, SQL: 9