• SSM(Spring、Spring MVC、Mybatis)框架整合 详细步骤(备注) 附源码


    整合思路

      将工程的三层结构中的JavaBean分别使用Spring容器(通过XML方式)进行管理。

    1. 整合持久层mapper,包括数据源、会话工程及mapper代理对象的整合;
    2. 整合业务层Service,包括事务及service的bean的配置;
    3. 整合表现层Controller,直接使用springmvc的配置;
    4. Web.xml加载spring容器(包含多个XML文件);

    Spring 核心配置文件:

    1. applicationContext-dao.xml
    2. applicationContext-service.xml
    3. applicationContext-tx.xml
    4. springmvc.xml

    需求分析

    表现层

      请求URL:/queryItem

      请求参数:无

      请求返回值:ModelAndView指定Model和View(item-list.jsp)

      Request域(Model):key为itemList

    业务层

      业务处理逻辑(需求分析):实现商品列表的查询

    持久层

      只针对表进行查询

    工程搭建

    依赖包

    1. spring(包括springmvc)
    2. mybatis
    3. mybatis-spring整合包
    4. 数据库驱动
    5. 第三方连接池
    6. JSTL
    7. servlet-api

    pom.xml

    <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>com.cyb.ssm</groupId>
        <artifactId>ssm-project</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>war</packaging>
        <dependencies>
            <!-- 持久层依赖开始 -->
            <!-- spring ioc组件需要的依赖包 -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>5.2.1.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>5.2.1.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>5.2.1.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-expression</artifactId>
                <version>5.2.1.RELEASE</version>
            </dependency>
    
            <!-- spring 事务管理和JDBC依赖包 -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-tx</artifactId>
                <version>5.2.1.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>5.2.1.RELEASE</version>
            </dependency>
    
            <!-- mysql驱动 -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.18</version>
            </dependency>
    
            <!-- dbcp连接池依赖包 -->
            <dependency>
                <groupId>commons-dbcp</groupId>
                <artifactId>commons-dbcp</artifactId>
                <version>1.4</version>
            </dependency>
            <dependency>
                <groupId>javax.annotation</groupId>
                <artifactId>javax.annotation-api</artifactId>
                <version>1.3.1</version>
            </dependency>
    
            <!-- mybatis依赖 -->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.5.3</version>
            </dependency>
    
            <!-- mybatis-spring整合依赖 -->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis-spring</artifactId>
                <version>2.0.3</version>
            </dependency>
            <!-- 持久层依赖结束 -->
    
            <!-- 业务层依赖开始 -->
            <!-- 基于AspectJ的aop依赖 -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aspects</artifactId>
                <version>5.2.1.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>aopalliance</groupId>
                <artifactId>aopalliance</artifactId>
                <version>1.0</version>
            </dependency>
            <!-- 业务层依赖结束 -->
    
            <!-- 表现层依赖开始 -->
            <!-- spring MVC依赖包 -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>5.2.1.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>5.2.1.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>2.9.8</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>2.9.8</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.9.8</version> 
            </dependency>
    
            <!-- jstl -->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jstl</artifactId>
                <version>1.2</version>
            </dependency>
    
            <!-- servlet -->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
                <version>2.5</version>
                <scope>provided</scope>
            </dependency>
            <!-- 表现层依赖结束 -->
    
            <!-- spring 单元测试组件包 -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>5.2.1.RELEASE</version>
                <scope>test</scope>
            </dependency>
    
            <!-- 单元测试Junit -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
        <build>
            <plugins>
                <!-- 配置Maven的JDK编译级别 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.2</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                        <encoding>UTF-8</encoding>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.2</version>
                    <configuration>
                        <port>8080</port>
                    </configuration>
                </plugin>
                <!-- tomcat依赖包 -->
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.2</version>
                </plugin>
            </plugins>
        </build>
    </project>

    工程整合(配置文件)

    applicationContext-dao.xml(持久层)

     路径:src/main/resources/spring/applicationContext-dao.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:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="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
            http://www.springframework.org/schema/tx
            http://www.springframework.org/schema/tx/spring-tx.xsd
            http://www.springframework.org/schema/aop
            http://www.springframework.org/schema/aop/spring-aop.xsd">
        <!-- 读取java配置文件,替换占位符数据 -->
        <context:property-placeholder location="classpath:db.properties"/>
        <!-- 配置数据源 -->
        <bean id="dataSource"
            class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
            <property name="driverClassName"
                value="${db.driverClassName}"></property>
            <property name="url"
                value="${db.url}"></property>
            <property name="username" value="${db.username}"></property>
            <property name="password" value="${db.password}"></property>
        </bean>
        <!-- 配置SqlSessionFactory -->
        <bean id="sqlSessionFactory"
            class="org.mybatis.spring.SqlSessionFactoryBean">
            <!-- 注入dataSource -->
            <property name="dataSource" ref="dataSource"></property>
            <!-- mybatis批量别名配置 -->
            <property name="typeAliasesPackage" value="com.cyb.ssm.po"></property>
        </bean>
        <!-- 批量代理对象的生成 -->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <!-- 指定需要生成代理的接口所在的包名 -->
            <property name="basePackage" value="com.cyb.ssm.mapper"></property>
        </bean>
    </beans>

    applicationContext-service.xml(业务层)

    路径:src/main/resources/spring/applicationContext-service.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:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="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
            http://www.springframework.org/schema/tx
            http://www.springframework.org/schema/tx/spring-tx.xsd
            http://www.springframework.org/schema/aop
            http://www.springframework.org/schema/aop/spring-aop.xsd">
        <!-- 扫描业务bean -->
        <context:component-scan
            base-package="com.cyb.ssm.service"></context:component-scan>
    </beans>

    applicationContext-tx.xml(事务)

    路径:src/main/resources/spring/applicationContext-tx.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:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="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
            http://www.springframework.org/schema/tx
            http://www.springframework.org/schema/tx/spring-tx.xsd
            http://www.springframework.org/schema/aop
            http://www.springframework.org/schema/aop/spring-aop.xsd">
    
        <!-- 配置平台事务管理器 -->
        <bean id="transactionManager"
            class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource"></property>
        </bean>
        <!-- 事务通知 -->
        <!-- tx:advice:对应的处理器类是TransactionInterceptor类(实现了MethodInterceptor) -->
        <!-- TransactionInterceptor类实现事务是通过transaction-manager属性指定的值进行事务管理 -->
        <tx:advice id="txAdvice"
            transaction-manager="transactionManager">
            <!-- 设置事务管理信息 -->
            <tx:attributes>
                <!-- 增删改使用REQUIRED事务传播行为 -->
                <!-- 查询使用read-only -->
                <tx:method name="save*" propagation="REQUIRED" />
                <tx:method name="insert*" propagation="REQUIRED" />
                <tx:method name="add*" propagation="REQUIRED" />
                <tx:method name="create*" propagation="REQUIRED" />
                <tx:method name="delete*" propagation="REQUIRED" />
                <tx:method name="remove*" propagation="REQUIRED" />
                <tx:method name="del*" propagation="REQUIRED" />
                <tx:method name="update*" propagation="REQUIRED" />
                <tx:method name="modify*" propagation="REQUIRED" />
                <tx:method name="edit*" propagation="REQUIRED" />
                <tx:method name="query*" read-only="true"/>
                <tx:method name="find*" read-only="true"/>
                <tx:method name="select*" read-only="true"/>
            </tx:attributes>
        </tx:advice>
        <!-- 基于AspectJ+XML方式实现声明式事务 -->
        <aop:config>
            <!-- aop:advisor标签使用的是传统spring aop开发方式实现的 -->
            <!-- spring已经实现了该增强功能,spring使用的是实现MethodInterceptor接口的方式实现的 -->
            <aop:advisor advice-ref="txAdvice"
                pointcut="execution(* *..*.*ServiceImpl.*(..))" />
        </aop:config>
    </beans>

    springmvc.xml(扫描)

    路径:src/main/resources/spring/springmvc.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:aop="http://www.springframework.org/schema/aop"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="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
            http://www.springframework.org/schema/tx
            http://www.springframework.org/schema/tx/spring-tx.xsd
            http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc.xsd
            http://www.springframework.org/schema/aop
            http://www.springframework.org/schema/aop/spring-aop.xsd">
        <!-- 处理器类的扫描 -->
        <context:component-scan
            base-package="com.cyb.ssm.controller"></context:component-scan>
        <mvc:annotation-driven />
        <!-- 显示配置视图解析器 -->
        <bean
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/jsp/"></property>
            <property name="suffix" value=".jsp"></property>
        </bean>
    </beans>

    db.properties

    路径:src/main/resources/db.properties

    db.driverClassName=com.mysql.cj.jdbc.Driver
    db.url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    db.username=root
    db.password=root

    log4j.properties

    路径:src/main/resources/log4j.properties

    #dev env [debug] product env [info]
    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

     提示

      POJO是逆向工程自动生成的,各自视情况而定!!!!

     包

     com.cyb.ssm.controller

     路径:src/main/java

     ItemController.java

    package com.cyb.ssm.controller;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.stereotype.Service;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.servlet.ModelAndView;
    
    import com.cyb.ssm.po.Item;
    import com.cyb.ssm.service.ItemService;
    
    @Controller
    public class ItemController {
        @Autowired
        private ItemService Service;
        
        @RequestMapping("queryItem")
        public ModelAndView queryItem() {
            List<Item> itemList = Service.queryItemList();
            ModelAndView mvAndView = new ModelAndView();
            mvAndView.addObject("itemList", itemList);
            mvAndView.setViewName("item/item-list");
            return mvAndView;
        }
    }

    com.cyb.ssm.mapper

    路径:src/main/java

    ItemMapper.java

    package com.cyb.ssm.mapper;
    
    import com.cyb.ssm.po.Item;
    import com.cyb.ssm.po.ItemExample;
    import java.util.List;
    import org.apache.ibatis.annotations.Param;
    
    public interface ItemMapper {
        int countByExample(ItemExample example);
    
        int deleteByExample(ItemExample example);
    
        int deleteByPrimaryKey(Integer id);
    
        int insert(Item record);
    
        int insertSelective(Item record);
    
        List<Item> selectByExampleWithBLOBs(ItemExample example);
    
        List<Item> selectByExample(ItemExample example);
    
        Item selectByPrimaryKey(Integer id);
    
        int updateByExampleSelective(@Param("record") Item record, @Param("example") ItemExample example);
    
        int updateByExampleWithBLOBs(@Param("record") Item record, @Param("example") ItemExample example);
    
        int updateByExample(@Param("record") Item record, @Param("example") ItemExample example);
    
        int updateByPrimaryKeySelective(Item record);
    
        int updateByPrimaryKeyWithBLOBs(Item record);
    
        int updateByPrimaryKey(Item record);
    }

    OrdersMapper.java

    package com.cyb.ssm.mapper;
    
    import com.cyb.ssm.po.Orders;
    import com.cyb.ssm.po.OrdersExample;
    import java.util.List;
    import org.apache.ibatis.annotations.Param;
    
    public interface OrdersMapper {
        int countByExample(OrdersExample example);
    
        int deleteByExample(OrdersExample example);
    
        int deleteByPrimaryKey(Integer id);
    
        int insert(Orders record);
    
        int insertSelective(Orders record);
    
        List<Orders> selectByExample(OrdersExample example);
    
        Orders selectByPrimaryKey(Integer id);
    
        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);
    }

    UserMapper.java

    package com.cyb.ssm.mapper;
    
    import com.cyb.ssm.po.User;
    import com.cyb.ssm.po.UserExample;
    import java.util.List;
    import org.apache.ibatis.annotations.Param;
    
    public interface UserMapper {
        int countByExample(UserExample example);
    
        int deleteByExample(UserExample example);
    
        int deleteByPrimaryKey(Integer id);
    
        int insert(User record);
    
        int insertSelective(User record);
    
        List<User> selectByExample(UserExample example);
    
        User selectByPrimaryKey(Integer id);
    
        int updateByExampleSelective(@Param("record") User record, @Param("example") UserExample example);
    
        int updateByExample(@Param("record") User record, @Param("example") UserExample example);
    
        int updateByPrimaryKeySelective(User record);
    
        int updateByPrimaryKey(User record);
    }

    ItemMapper.xml

    <?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="com.cyb.ssm.mapper.ItemMapper" >
      <resultMap id="BaseResultMap" type="com.cyb.ssm.po.Item" >
        <id column="id" property="id" jdbcType="INTEGER" />
        <result column="name" property="name" jdbcType="VARCHAR" />
        <result column="price" property="price" jdbcType="REAL" />
        <result column="pic" property="pic" jdbcType="VARCHAR" />
        <result column="createtime" property="createtime" jdbcType="TIMESTAMP" />
      </resultMap>
      <resultMap id="ResultMapWithBLOBs" type="com.cyb.ssm.po.Item" extends="BaseResultMap" >
        <result column="detail" property="detail" jdbcType="LONGVARCHAR" />
      </resultMap>
      <sql id="Example_Where_Clause" >
        <where >
          <foreach collection="oredCriteria" item="criteria" separator="or" >
            <if test="criteria.valid" >
              <trim prefix="(" suffix=")" prefixOverrides="and" >
                <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 collection="criterion.value" item="listItem" open="(" close=")" 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="(" suffix=")" prefixOverrides="and" >
                <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 collection="criterion.value" item="listItem" open="(" close=")" separator="," >
                        #{listItem}
                      </foreach>
                    </when>
                  </choose>
                </foreach>
              </trim>
            </if>
          </foreach>
        </where>
      </sql>
      <sql id="Base_Column_List" >
        id, name, price, pic, createtime
      </sql>
      <sql id="Blob_Column_List" >
        detail
      </sql>
      <select id="selectByExampleWithBLOBs" resultMap="ResultMapWithBLOBs" parameterType="com.cyb.ssm.po.ItemExample" >
        select
        <if test="distinct" >
          distinct
        </if>
        <include refid="Base_Column_List" />
        ,
        <include refid="Blob_Column_List" />
        from item
        <if test="_parameter != null" >
          <include refid="Example_Where_Clause" />
        </if>
        <if test="orderByClause != null" >
          order by ${orderByClause}
        </if>
      </select>
      <select id="selectByExample" resultMap="BaseResultMap" parameterType="com.cyb.ssm.po.ItemExample" >
        select
        <if test="distinct" >
          distinct
        </if>
        <include refid="Base_Column_List" />
        from item
        <if test="_parameter != null" >
          <include refid="Example_Where_Clause" />
        </if>
        <if test="orderByClause != null" >
          order by ${orderByClause}
        </if>
      </select>
      <select id="selectByPrimaryKey" resultMap="ResultMapWithBLOBs" parameterType="java.lang.Integer" >
        select 
        <include refid="Base_Column_List" />
        ,
        <include refid="Blob_Column_List" />
        from item
        where id = #{id,jdbcType=INTEGER}
      </select>
      <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
        delete from item
        where id = #{id,jdbcType=INTEGER}
      </delete>
      <delete id="deleteByExample" parameterType="com.cyb.ssm.po.ItemExample" >
        delete from item
        <if test="_parameter != null" >
          <include refid="Example_Where_Clause" />
        </if>
      </delete>
      <insert id="insert" parameterType="com.cyb.ssm.po.Item" >
        insert into item (id, name, price, 
          pic, createtime, detail
          )
        values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{price,jdbcType=REAL}, 
          #{pic,jdbcType=VARCHAR}, #{createtime,jdbcType=TIMESTAMP}, #{detail,jdbcType=LONGVARCHAR}
          )
      </insert>
      <insert id="insertSelective" parameterType="com.cyb.ssm.po.Item" >
        insert into item
        <trim prefix="(" suffix=")" suffixOverrides="," >
          <if test="id != null" >
            id,
          </if>
          <if test="name != null" >
            name,
          </if>
          <if test="price != null" >
            price,
          </if>
          <if test="pic != null" >
            pic,
          </if>
          <if test="createtime != null" >
            createtime,
          </if>
          <if test="detail != null" >
            detail,
          </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides="," >
          <if test="id != null" >
            #{id,jdbcType=INTEGER},
          </if>
          <if test="name != null" >
            #{name,jdbcType=VARCHAR},
          </if>
          <if test="price != null" >
            #{price,jdbcType=REAL},
          </if>
          <if test="pic != null" >
            #{pic,jdbcType=VARCHAR},
          </if>
          <if test="createtime != null" >
            #{createtime,jdbcType=TIMESTAMP},
          </if>
          <if test="detail != null" >
            #{detail,jdbcType=LONGVARCHAR},
          </if>
        </trim>
      </insert>
      <select id="countByExample" parameterType="com.cyb.ssm.po.ItemExample" resultType="java.lang.Integer" >
        select count(*) from item
        <if test="_parameter != null" >
          <include refid="Example_Where_Clause" />
        </if>
      </select>
      <update id="updateByExampleSelective" parameterType="map" >
        update item
        <set >
          <if test="record.id != null" >
            id = #{record.id,jdbcType=INTEGER},
          </if>
          <if test="record.name != null" >
            name = #{record.name,jdbcType=VARCHAR},
          </if>
          <if test="record.price != null" >
            price = #{record.price,jdbcType=REAL},
          </if>
          <if test="record.pic != null" >
            pic = #{record.pic,jdbcType=VARCHAR},
          </if>
          <if test="record.createtime != null" >
            createtime = #{record.createtime,jdbcType=TIMESTAMP},
          </if>
          <if test="record.detail != null" >
            detail = #{record.detail,jdbcType=LONGVARCHAR},
          </if>
        </set>
        <if test="_parameter != null" >
          <include refid="Update_By_Example_Where_Clause" />
        </if>
      </update>
      <update id="updateByExampleWithBLOBs" parameterType="map" >
        update item
        set id = #{record.id,jdbcType=INTEGER},
          name = #{record.name,jdbcType=VARCHAR},
          price = #{record.price,jdbcType=REAL},
          pic = #{record.pic,jdbcType=VARCHAR},
          createtime = #{record.createtime,jdbcType=TIMESTAMP},
          detail = #{record.detail,jdbcType=LONGVARCHAR}
        <if test="_parameter != null" >
          <include refid="Update_By_Example_Where_Clause" />
        </if>
      </update>
      <update id="updateByExample" parameterType="map" >
        update item
        set id = #{record.id,jdbcType=INTEGER},
          name = #{record.name,jdbcType=VARCHAR},
          price = #{record.price,jdbcType=REAL},
          pic = #{record.pic,jdbcType=VARCHAR},
          createtime = #{record.createtime,jdbcType=TIMESTAMP}
        <if test="_parameter != null" >
          <include refid="Update_By_Example_Where_Clause" />
        </if>
      </update>
      <update id="updateByPrimaryKeySelective" parameterType="com.cyb.ssm.po.Item" >
        update item
        <set >
          <if test="name != null" >
            name = #{name,jdbcType=VARCHAR},
          </if>
          <if test="price != null" >
            price = #{price,jdbcType=REAL},
          </if>
          <if test="pic != null" >
            pic = #{pic,jdbcType=VARCHAR},
          </if>
          <if test="createtime != null" >
            createtime = #{createtime,jdbcType=TIMESTAMP},
          </if>
          <if test="detail != null" >
            detail = #{detail,jdbcType=LONGVARCHAR},
          </if>
        </set>
        where id = #{id,jdbcType=INTEGER}
      </update>
      <update id="updateByPrimaryKeyWithBLOBs" parameterType="com.cyb.ssm.po.Item" >
        update item
        set name = #{name,jdbcType=VARCHAR},
          price = #{price,jdbcType=REAL},
          pic = #{pic,jdbcType=VARCHAR},
          createtime = #{createtime,jdbcType=TIMESTAMP},
          detail = #{detail,jdbcType=LONGVARCHAR}
        where id = #{id,jdbcType=INTEGER}
      </update>
      <update id="updateByPrimaryKey" parameterType="com.cyb.ssm.po.Item" >
        update item
        set name = #{name,jdbcType=VARCHAR},
          price = #{price,jdbcType=REAL},
          pic = #{pic,jdbcType=VARCHAR},
          createtime = #{createtime,jdbcType=TIMESTAMP}
        where id = #{id,jdbcType=INTEGER}
      </update>
    </mapper>

    OrdersMapper.xml

    <?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="com.cyb.ssm.mapper.OrdersMapper" >
      <resultMap id="BaseResultMap" type="com.cyb.ssm.po.Orders" >
        <id column="id" property="id" jdbcType="INTEGER" />
        <result column="user_id" property="userId" jdbcType="INTEGER" />
        <result column="number" property="number" jdbcType="VARCHAR" />
        <result column="createtime" property="createtime" jdbcType="TIMESTAMP" />
        <result column="note" property="note" jdbcType="VARCHAR" />
      </resultMap>
      <sql id="Example_Where_Clause" >
        <where >
          <foreach collection="oredCriteria" item="criteria" separator="or" >
            <if test="criteria.valid" >
              <trim prefix="(" suffix=")" prefixOverrides="and" >
                <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 collection="criterion.value" item="listItem" open="(" close=")" 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="(" suffix=")" prefixOverrides="and" >
                <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 collection="criterion.value" item="listItem" open="(" close=")" separator="," >
                        #{listItem}
                      </foreach>
                    </when>
                  </choose>
                </foreach>
              </trim>
            </if>
          </foreach>
        </where>
      </sql>
      <sql id="Base_Column_List" >
        id, user_id, number, createtime, note
      </sql>
      <select id="selectByExample" resultMap="BaseResultMap" parameterType="com.cyb.ssm.po.OrdersExample" >
        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>
      </select>
      <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
        select 
        <include refid="Base_Column_List" />
        from orders
        where id = #{id,jdbcType=INTEGER}
      </select>
      <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
        delete from orders
        where id = #{id,jdbcType=INTEGER}
      </delete>
      <delete id="deleteByExample" parameterType="com.cyb.ssm.po.OrdersExample" >
        delete from orders
        <if test="_parameter != null" >
          <include refid="Example_Where_Clause" />
        </if>
      </delete>
      <insert id="insert" parameterType="com.cyb.ssm.po.Orders" >
        insert into orders (id, user_id, number, 
          createtime, note)
        values (#{id,jdbcType=INTEGER}, #{userId,jdbcType=INTEGER}, #{number,jdbcType=VARCHAR}, 
          #{createtime,jdbcType=TIMESTAMP}, #{note,jdbcType=VARCHAR})
      </insert>
      <insert id="insertSelective" parameterType="com.cyb.ssm.po.Orders" >
        insert into orders
        <trim prefix="(" suffix=")" suffixOverrides="," >
          <if test="id != null" >
            id,
          </if>
          <if test="userId != null" >
            user_id,
          </if>
          <if test="number != null" >
            number,
          </if>
          <if test="createtime != null" >
            createtime,
          </if>
          <if test="note != null" >
            note,
          </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides="," >
          <if test="id != null" >
            #{id,jdbcType=INTEGER},
          </if>
          <if test="userId != null" >
            #{userId,jdbcType=INTEGER},
          </if>
          <if test="number != null" >
            #{number,jdbcType=VARCHAR},
          </if>
          <if test="createtime != null" >
            #{createtime,jdbcType=TIMESTAMP},
          </if>
          <if test="note != null" >
            #{note,jdbcType=VARCHAR},
          </if>
        </trim>
      </insert>
      <select id="countByExample" parameterType="com.cyb.ssm.po.OrdersExample" resultType="java.lang.Integer" >
        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.id != null" >
            id = #{record.id,jdbcType=INTEGER},
          </if>
          <if test="record.userId != null" >
            user_id = #{record.userId,jdbcType=INTEGER},
          </if>
          <if test="record.number != null" >
            number = #{record.number,jdbcType=VARCHAR},
          </if>
          <if test="record.createtime != null" >
            createtime = #{record.createtime,jdbcType=TIMESTAMP},
          </if>
          <if test="record.note != null" >
            note = #{record.note,jdbcType=VARCHAR},
          </if>
        </set>
        <if test="_parameter != null" >
          <include refid="Update_By_Example_Where_Clause" />
        </if>
      </update>
      <update id="updateByExample" parameterType="map" >
        update orders
        set id = #{record.id,jdbcType=INTEGER},
          user_id = #{record.userId,jdbcType=INTEGER},
          number = #{record.number,jdbcType=VARCHAR},
          createtime = #{record.createtime,jdbcType=TIMESTAMP},
          note = #{record.note,jdbcType=VARCHAR}
        <if test="_parameter != null" >
          <include refid="Update_By_Example_Where_Clause" />
        </if>
      </update>
      <update id="updateByPrimaryKeySelective" parameterType="com.cyb.ssm.po.Orders" >
        update orders
        <set >
          <if test="userId != null" >
            user_id = #{userId,jdbcType=INTEGER},
          </if>
          <if test="number != null" >
            number = #{number,jdbcType=VARCHAR},
          </if>
          <if test="createtime != null" >
            createtime = #{createtime,jdbcType=TIMESTAMP},
          </if>
          <if test="note != null" >
            note = #{note,jdbcType=VARCHAR},
          </if>
        </set>
        where id = #{id,jdbcType=INTEGER}
      </update>
      <update id="updateByPrimaryKey" parameterType="com.cyb.ssm.po.Orders" >
        update orders
        set user_id = #{userId,jdbcType=INTEGER},
          number = #{number,jdbcType=VARCHAR},
          createtime = #{createtime,jdbcType=TIMESTAMP},
          note = #{note,jdbcType=VARCHAR}
        where id = #{id,jdbcType=INTEGER}
      </update>
    </mapper>

    UserMapper.xml

    <?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="com.cyb.ssm.mapper.UserMapper">
        <resultMap id="BaseResultMap" type="com.cyb.ssm.po.User">
            <id column="id" property="id" jdbcType="INTEGER" />
            <result column="username" property="username"
                jdbcType="VARCHAR" />
            <result column="birthday" property="birthday" jdbcType="DATE" />
            <result column="sex" property="sex" jdbcType="CHAR" />
            <result column="address" property="address" jdbcType="VARCHAR" />
        </resultMap>
        <sql id="Example_Where_Clause">
            <where>
                <foreach collection="oredCriteria" item="criteria"
                    separator="or">
                    <if test="criteria.valid">
                        <trim prefix="(" suffix=")" prefixOverrides="and">
                            <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 collection="criterion.value" item="listItem"
                                            open="(" close=")" 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="(" suffix=")" prefixOverrides="and">
                            <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 collection="criterion.value" item="listItem"
                                            open="(" close=")" separator=",">
                                            #{listItem}
                                        </foreach>
                                    </when>
                                </choose>
                            </foreach>
                        </trim>
                    </if>
                </foreach>
            </where>
        </sql>
        <sql id="Base_Column_List">
            id, username, birthday, sex, address
        </sql>
        <select id="selectByExample" resultMap="BaseResultMap"
            parameterType="com.cyb.ssm.po.UserExample">
            select
            <if test="distinct">
                distinct
            </if>
            <include refid="Base_Column_List" />
            from user
            <if test="_parameter != null">
                <include refid="Example_Where_Clause" />
            </if>
            <if test="orderByClause != null">
                order by ${orderByClause}
            </if>
        </select>
        <select id="selectByPrimaryKey" resultMap="BaseResultMap"
            parameterType="java.lang.Integer">
            select
            <include refid="Base_Column_List" />
            from user
            where id = #{id,jdbcType=INTEGER}
        </select>
        <delete id="deleteByPrimaryKey"
            parameterType="java.lang.Integer">
            delete from user
            where id = #{id,jdbcType=INTEGER}
        </delete>
        <delete id="deleteByExample"
            parameterType="com.cyb.ssm.po.UserExample">
            delete from user
            <if test="_parameter != null">
                <include refid="Example_Where_Clause" />
            </if>
        </delete>
        <insert id="insert" parameterType="com.cyb.ssm.po.User">
            insert into user (id, username, birthday,
            sex, address)
            values (#{id,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR},
            #{birthday,jdbcType=DATE},
            #{sex,jdbcType=CHAR}, #{address,jdbcType=VARCHAR})
        </insert>
        <insert id="insertSelective" parameterType="com.cyb.ssm.po.User">
            insert into user
            <trim prefix="(" suffix=")" suffixOverrides=",">
                <if test="id != null">
                    id,
                </if>
                <if test="username != null">
                    username,
                </if>
                <if test="birthday != null">
                    birthday,
                </if>
                <if test="sex != null">
                    sex,
                </if>
                <if test="address != null">
                    address,
                </if>
            </trim>
            <trim prefix="values (" suffix=")" suffixOverrides=",">
                <if test="id != null">
                    #{id,jdbcType=INTEGER},
                </if>
                <if test="username != null">
                    #{username,jdbcType=VARCHAR},
                </if>
                <if test="birthday != null">
                    #{birthday,jdbcType=DATE},
                </if>
                <if test="sex != null">
                    #{sex,jdbcType=CHAR},
                </if>
                <if test="address != null">
                    #{address,jdbcType=VARCHAR},
                </if>
            </trim>
        </insert>
        <select id="countByExample"
            parameterType="com.cyb.ssm.po.UserExample"
            resultType="java.lang.Integer">
            select count(*) from user
            <if test="_parameter != null">
                <include refid="Example_Where_Clause" />
            </if>
        </select>
        <update id="updateByExampleSelective" parameterType="map">
            update user
            <set>
                <if test="record.id != null">
                    id = #{record.id,jdbcType=INTEGER},
                </if>
                <if test="record.username != null">
                    username = #{record.username,jdbcType=VARCHAR},
                </if>
                <if test="record.birthday != null">
                    birthday = #{record.birthday,jdbcType=DATE},
                </if>
                <if test="record.sex != null">
                    sex = #{record.sex,jdbcType=CHAR},
                </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 user
            set id = #{record.id,jdbcType=INTEGER},
            username = #{record.username,jdbcType=VARCHAR},
            birthday = #{record.birthday,jdbcType=DATE},
            sex = #{record.sex,jdbcType=CHAR},
            address = #{record.address,jdbcType=VARCHAR}
            <if test="_parameter != null">
                <include refid="Update_By_Example_Where_Clause" />
            </if>
        </update>
        <update id="updateByPrimaryKeySelective"
            parameterType="com.cyb.ssm.po.User">
            update user
            <set>
                <if test="username != null">
                    username = #{username,jdbcType=VARCHAR},
                </if>
                <if test="birthday != null">
                    birthday = #{birthday,jdbcType=DATE},
                </if>
                <if test="sex != null">
                    sex = #{sex,jdbcType=CHAR},
                </if>
                <if test="address != null">
                    address = #{address,jdbcType=VARCHAR},
                </if>
            </set>
            where id = #{id,jdbcType=INTEGER}
        </update>
        <update id="updateByPrimaryKey"
            parameterType="com.cyb.ssm.po.User">
            update user
            set username = #{username,jdbcType=VARCHAR},
            birthday = #{birthday,jdbcType=DATE},
            sex = #{sex,jdbcType=CHAR},
            address = #{address,jdbcType=VARCHAR}
            where id = #{id,jdbcType=INTEGER}
        </update>
    </mapper>

    com.cyb.ssm.po

    路径:src/main/java

    Item.java

    package com.cyb.ssm.po;
    
    import java.util.Date;
    
    public class Item {
        private Integer id;
    
        private String name;
    
        private Float price;
    
        private String pic;
    
        private Date createtime;
    
        private String detail;
    
        public Integer getId() {
            return id;
        }
    
        public void setId(Integer id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name == null ? null : name.trim();
        }
    
        public Float getPrice() {
            return price;
        }
    
        public void setPrice(Float price) {
            this.price = price;
        }
    
        public String getPic() {
            return pic;
        }
    
        public void setPic(String pic) {
            this.pic = pic == null ? null : pic.trim();
        }
    
        public Date getCreatetime() {
            return createtime;
        }
    
        public void setCreatetime(Date createtime) {
            this.createtime = createtime;
        }
    
        public String getDetail() {
            return detail;
        }
    
        public void setDetail(String detail) {
            this.detail = detail == null ? null : detail.trim();
        }
    }

    ItemExample.java

    package com.cyb.ssm.po;
    
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    
    public class ItemExample {
        protected String orderByClause;
    
        protected boolean distinct;
    
        protected List<Criteria> oredCriteria;
    
        public ItemExample() {
            oredCriteria = new ArrayList<Criteria>();
        }
    
        public void setOrderByClause(String orderByClause) {
            this.orderByClause = orderByClause;
        }
    
        public String getOrderByClause() {
            return orderByClause;
        }
    
        public void setDistinct(boolean distinct) {
            this.distinct = distinct;
        }
    
        public boolean isDistinct() {
            return distinct;
        }
    
        public List<Criteria> getOredCriteria() {
            return oredCriteria;
        }
    
        public void or(Criteria criteria) {
            oredCriteria.add(criteria);
        }
    
        public Criteria or() {
            Criteria criteria = createCriteriaInternal();
            oredCriteria.add(criteria);
            return criteria;
        }
    
        public Criteria createCriteria() {
            Criteria criteria = createCriteriaInternal();
            if (oredCriteria.size() == 0) {
                oredCriteria.add(criteria);
            }
            return criteria;
        }
    
        protected Criteria createCriteriaInternal() {
            Criteria criteria = new Criteria();
            return criteria;
        }
    
        public void clear() {
            oredCriteria.clear();
            orderByClause = null;
            distinct = false;
        }
    
        protected abstract static class GeneratedCriteria {
            protected List<Criterion> criteria;
    
            protected GeneratedCriteria() {
                super();
                criteria = new ArrayList<Criterion>();
            }
    
            public boolean isValid() {
                return criteria.size() > 0;
            }
    
            public List<Criterion> getAllCriteria() {
                return criteria;
            }
    
            public List<Criterion> getCriteria() {
                return criteria;
            }
    
            protected void addCriterion(String condition) {
                if (condition == null) {
                    throw new RuntimeException("Value for condition cannot be null");
                }
                criteria.add(new Criterion(condition));
            }
    
            protected void addCriterion(String condition, Object value, String property) {
                if (value == null) {
                    throw new RuntimeException("Value for " + property + " cannot be null");
                }
                criteria.add(new Criterion(condition, value));
            }
    
            protected void addCriterion(String condition, Object value1, Object value2, String property) {
                if (value1 == null || value2 == null) {
                    throw new RuntimeException("Between values for " + property + " cannot be null");
                }
                criteria.add(new Criterion(condition, value1, value2));
            }
    
            public Criteria andIdIsNull() {
                addCriterion("id is null");
                return (Criteria) this;
            }
    
            public Criteria andIdIsNotNull() {
                addCriterion("id is not null");
                return (Criteria) this;
            }
    
            public Criteria andIdEqualTo(Integer value) {
                addCriterion("id =", value, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdNotEqualTo(Integer value) {
                addCriterion("id <>", value, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdGreaterThan(Integer value) {
                addCriterion("id >", value, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdGreaterThanOrEqualTo(Integer value) {
                addCriterion("id >=", value, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdLessThan(Integer value) {
                addCriterion("id <", value, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdLessThanOrEqualTo(Integer value) {
                addCriterion("id <=", value, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdIn(List<Integer> values) {
                addCriterion("id in", values, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdNotIn(List<Integer> values) {
                addCriterion("id not in", values, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdBetween(Integer value1, Integer value2) {
                addCriterion("id between", value1, value2, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdNotBetween(Integer value1, Integer value2) {
                addCriterion("id not between", value1, value2, "id");
                return (Criteria) this;
            }
    
            public Criteria andNameIsNull() {
                addCriterion("name is null");
                return (Criteria) this;
            }
    
            public Criteria andNameIsNotNull() {
                addCriterion("name is not null");
                return (Criteria) this;
            }
    
            public Criteria andNameEqualTo(String value) {
                addCriterion("name =", value, "name");
                return (Criteria) this;
            }
    
            public Criteria andNameNotEqualTo(String value) {
                addCriterion("name <>", value, "name");
                return (Criteria) this;
            }
    
            public Criteria andNameGreaterThan(String value) {
                addCriterion("name >", value, "name");
                return (Criteria) this;
            }
    
            public Criteria andNameGreaterThanOrEqualTo(String value) {
                addCriterion("name >=", value, "name");
                return (Criteria) this;
            }
    
            public Criteria andNameLessThan(String value) {
                addCriterion("name <", value, "name");
                return (Criteria) this;
            }
    
            public Criteria andNameLessThanOrEqualTo(String value) {
                addCriterion("name <=", value, "name");
                return (Criteria) this;
            }
    
            public Criteria andNameLike(String value) {
                addCriterion("name like", value, "name");
                return (Criteria) this;
            }
    
            public Criteria andNameNotLike(String value) {
                addCriterion("name not like", value, "name");
                return (Criteria) this;
            }
    
            public Criteria andNameIn(List<String> values) {
                addCriterion("name in", values, "name");
                return (Criteria) this;
            }
    
            public Criteria andNameNotIn(List<String> values) {
                addCriterion("name not in", values, "name");
                return (Criteria) this;
            }
    
            public Criteria andNameBetween(String value1, String value2) {
                addCriterion("name between", value1, value2, "name");
                return (Criteria) this;
            }
    
            public Criteria andNameNotBetween(String value1, String value2) {
                addCriterion("name not between", value1, value2, "name");
                return (Criteria) this;
            }
    
            public Criteria andPriceIsNull() {
                addCriterion("price is null");
                return (Criteria) this;
            }
    
            public Criteria andPriceIsNotNull() {
                addCriterion("price is not null");
                return (Criteria) this;
            }
    
            public Criteria andPriceEqualTo(Float value) {
                addCriterion("price =", value, "price");
                return (Criteria) this;
            }
    
            public Criteria andPriceNotEqualTo(Float value) {
                addCriterion("price <>", value, "price");
                return (Criteria) this;
            }
    
            public Criteria andPriceGreaterThan(Float value) {
                addCriterion("price >", value, "price");
                return (Criteria) this;
            }
    
            public Criteria andPriceGreaterThanOrEqualTo(Float value) {
                addCriterion("price >=", value, "price");
                return (Criteria) this;
            }
    
            public Criteria andPriceLessThan(Float value) {
                addCriterion("price <", value, "price");
                return (Criteria) this;
            }
    
            public Criteria andPriceLessThanOrEqualTo(Float value) {
                addCriterion("price <=", value, "price");
                return (Criteria) this;
            }
    
            public Criteria andPriceIn(List<Float> values) {
                addCriterion("price in", values, "price");
                return (Criteria) this;
            }
    
            public Criteria andPriceNotIn(List<Float> values) {
                addCriterion("price not in", values, "price");
                return (Criteria) this;
            }
    
            public Criteria andPriceBetween(Float value1, Float value2) {
                addCriterion("price between", value1, value2, "price");
                return (Criteria) this;
            }
    
            public Criteria andPriceNotBetween(Float value1, Float value2) {
                addCriterion("price not between", value1, value2, "price");
                return (Criteria) this;
            }
    
            public Criteria andPicIsNull() {
                addCriterion("pic is null");
                return (Criteria) this;
            }
    
            public Criteria andPicIsNotNull() {
                addCriterion("pic is not null");
                return (Criteria) this;
            }
    
            public Criteria andPicEqualTo(String value) {
                addCriterion("pic =", value, "pic");
                return (Criteria) this;
            }
    
            public Criteria andPicNotEqualTo(String value) {
                addCriterion("pic <>", value, "pic");
                return (Criteria) this;
            }
    
            public Criteria andPicGreaterThan(String value) {
                addCriterion("pic >", value, "pic");
                return (Criteria) this;
            }
    
            public Criteria andPicGreaterThanOrEqualTo(String value) {
                addCriterion("pic >=", value, "pic");
                return (Criteria) this;
            }
    
            public Criteria andPicLessThan(String value) {
                addCriterion("pic <", value, "pic");
                return (Criteria) this;
            }
    
            public Criteria andPicLessThanOrEqualTo(String value) {
                addCriterion("pic <=", value, "pic");
                return (Criteria) this;
            }
    
            public Criteria andPicLike(String value) {
                addCriterion("pic like", value, "pic");
                return (Criteria) this;
            }
    
            public Criteria andPicNotLike(String value) {
                addCriterion("pic not like", value, "pic");
                return (Criteria) this;
            }
    
            public Criteria andPicIn(List<String> values) {
                addCriterion("pic in", values, "pic");
                return (Criteria) this;
            }
    
            public Criteria andPicNotIn(List<String> values) {
                addCriterion("pic not in", values, "pic");
                return (Criteria) this;
            }
    
            public Criteria andPicBetween(String value1, String value2) {
                addCriterion("pic between", value1, value2, "pic");
                return (Criteria) this;
            }
    
            public Criteria andPicNotBetween(String value1, String value2) {
                addCriterion("pic not between", value1, value2, "pic");
                return (Criteria) this;
            }
    
            public Criteria andCreatetimeIsNull() {
                addCriterion("createtime is null");
                return (Criteria) this;
            }
    
            public Criteria andCreatetimeIsNotNull() {
                addCriterion("createtime is not null");
                return (Criteria) this;
            }
    
            public Criteria andCreatetimeEqualTo(Date value) {
                addCriterion("createtime =", value, "createtime");
                return (Criteria) this;
            }
    
            public Criteria andCreatetimeNotEqualTo(Date value) {
                addCriterion("createtime <>", value, "createtime");
                return (Criteria) this;
            }
    
            public Criteria andCreatetimeGreaterThan(Date value) {
                addCriterion("createtime >", value, "createtime");
                return (Criteria) this;
            }
    
            public Criteria andCreatetimeGreaterThanOrEqualTo(Date value) {
                addCriterion("createtime >=", value, "createtime");
                return (Criteria) this;
            }
    
            public Criteria andCreatetimeLessThan(Date value) {
                addCriterion("createtime <", value, "createtime");
                return (Criteria) this;
            }
    
            public Criteria andCreatetimeLessThanOrEqualTo(Date value) {
                addCriterion("createtime <=", value, "createtime");
                return (Criteria) this;
            }
    
            public Criteria andCreatetimeIn(List<Date> values) {
                addCriterion("createtime in", values, "createtime");
                return (Criteria) this;
            }
    
            public Criteria andCreatetimeNotIn(List<Date> values) {
                addCriterion("createtime not in", values, "createtime");
                return (Criteria) this;
            }
    
            public Criteria andCreatetimeBetween(Date value1, Date value2) {
                addCriterion("createtime between", value1, value2, "createtime");
                return (Criteria) this;
            }
    
            public Criteria andCreatetimeNotBetween(Date value1, Date value2) {
                addCriterion("createtime not between", value1, value2, "createtime");
                return (Criteria) this;
            }
        }
    
        public static class Criteria extends GeneratedCriteria {
    
            protected Criteria() {
                super();
            }
        }
    
        public static class Criterion {
            private String condition;
    
            private Object value;
    
            private Object secondValue;
    
            private boolean noValue;
    
            private boolean singleValue;
    
            private boolean betweenValue;
    
            private boolean listValue;
    
            private String typeHandler;
    
            public String getCondition() {
                return condition;
            }
    
            public Object getValue() {
                return value;
            }
    
            public Object getSecondValue() {
                return secondValue;
            }
    
            public boolean isNoValue() {
                return noValue;
            }
    
            public boolean isSingleValue() {
                return singleValue;
            }
    
            public boolean isBetweenValue() {
                return betweenValue;
            }
    
            public boolean isListValue() {
                return listValue;
            }
    
            public String getTypeHandler() {
                return typeHandler;
            }
    
            protected Criterion(String condition) {
                super();
                this.condition = condition;
                this.typeHandler = null;
                this.noValue = true;
            }
    
            protected Criterion(String condition, Object value, String typeHandler) {
                super();
                this.condition = condition;
                this.value = value;
                this.typeHandler = typeHandler;
                if (value instanceof List<?>) {
                    this.listValue = true;
                } else {
                    this.singleValue = true;
                }
            }
    
            protected Criterion(String condition, Object value) {
                this(condition, value, null);
            }
    
            protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
                super();
                this.condition = condition;
                this.value = value;
                this.secondValue = secondValue;
                this.typeHandler = typeHandler;
                this.betweenValue = true;
            }
    
            protected Criterion(String condition, Object value, Object secondValue) {
                this(condition, value, secondValue, null);
            }
        }
    }

    ItemQueryVO.java

    package com.cyb.ssm.po;
    
    import java.util.List;
    
    public class ItemQueryVO {
    
        private Item item;
    
        private List<Item> itemList;
        
        //private Item[] itemList;
        
        public Item getItem() {
            return item;
        }
    
        public void setItem(Item item) {
            this.item = item;
        }
    
        public List<Item> getItemList() {
            return itemList;
        }
    
        public void setItemList(List<Item> itemList) {
            this.itemList = itemList;
        }
    
        
    }

    Orders.java

    package com.cyb.ssm.po;
    
    import java.util.Date;
    
    public class Orders {
        private Integer id;
    
        private Integer userId;
    
        private String number;
    
        private Date createtime;
    
        private String note;
    
        public Integer getId() {
            return id;
        }
    
        public void setId(Integer id) {
            this.id = id;
        }
    
        public Integer getUserId() {
            return userId;
        }
    
        public void setUserId(Integer userId) {
            this.userId = userId;
        }
    
        public String getNumber() {
            return number;
        }
    
        public void setNumber(String number) {
            this.number = number == null ? null : number.trim();
        }
    
        public Date getCreatetime() {
            return createtime;
        }
    
        public void setCreatetime(Date createtime) {
            this.createtime = createtime;
        }
    
        public String getNote() {
            return note;
        }
    
        public void setNote(String note) {
            this.note = note == null ? null : note.trim();
        }
    }

    OrdersExample.java

    package com.cyb.ssm.po;
    
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    
    public class OrdersExample {
        protected String orderByClause;
    
        protected boolean distinct;
    
        protected List<Criteria> oredCriteria;
    
        public OrdersExample() {
            oredCriteria = new ArrayList<Criteria>();
        }
    
        public void setOrderByClause(String orderByClause) {
            this.orderByClause = orderByClause;
        }
    
        public String getOrderByClause() {
            return orderByClause;
        }
    
        public void setDistinct(boolean distinct) {
            this.distinct = distinct;
        }
    
        public boolean isDistinct() {
            return distinct;
        }
    
        public List<Criteria> getOredCriteria() {
            return oredCriteria;
        }
    
        public void or(Criteria criteria) {
            oredCriteria.add(criteria);
        }
    
        public Criteria or() {
            Criteria criteria = createCriteriaInternal();
            oredCriteria.add(criteria);
            return criteria;
        }
    
        public Criteria createCriteria() {
            Criteria criteria = createCriteriaInternal();
            if (oredCriteria.size() == 0) {
                oredCriteria.add(criteria);
            }
            return criteria;
        }
    
        protected Criteria createCriteriaInternal() {
            Criteria criteria = new Criteria();
            return criteria;
        }
    
        public void clear() {
            oredCriteria.clear();
            orderByClause = null;
            distinct = false;
        }
    
        protected abstract static class GeneratedCriteria {
            protected List<Criterion> criteria;
    
            protected GeneratedCriteria() {
                super();
                criteria = new ArrayList<Criterion>();
            }
    
            public boolean isValid() {
                return criteria.size() > 0;
            }
    
            public List<Criterion> getAllCriteria() {
                return criteria;
            }
    
            public List<Criterion> getCriteria() {
                return criteria;
            }
    
            protected void addCriterion(String condition) {
                if (condition == null) {
                    throw new RuntimeException("Value for condition cannot be null");
                }
                criteria.add(new Criterion(condition));
            }
    
            protected void addCriterion(String condition, Object value, String property) {
                if (value == null) {
                    throw new RuntimeException("Value for " + property + " cannot be null");
                }
                criteria.add(new Criterion(condition, value));
            }
    
            protected void addCriterion(String condition, Object value1, Object value2, String property) {
                if (value1 == null || value2 == null) {
                    throw new RuntimeException("Between values for " + property + " cannot be null");
                }
                criteria.add(new Criterion(condition, value1, value2));
            }
    
            public Criteria andIdIsNull() {
                addCriterion("id is null");
                return (Criteria) this;
            }
    
            public Criteria andIdIsNotNull() {
                addCriterion("id is not null");
                return (Criteria) this;
            }
    
            public Criteria andIdEqualTo(Integer value) {
                addCriterion("id =", value, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdNotEqualTo(Integer value) {
                addCriterion("id <>", value, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdGreaterThan(Integer value) {
                addCriterion("id >", value, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdGreaterThanOrEqualTo(Integer value) {
                addCriterion("id >=", value, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdLessThan(Integer value) {
                addCriterion("id <", value, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdLessThanOrEqualTo(Integer value) {
                addCriterion("id <=", value, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdIn(List<Integer> values) {
                addCriterion("id in", values, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdNotIn(List<Integer> values) {
                addCriterion("id not in", values, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdBetween(Integer value1, Integer value2) {
                addCriterion("id between", value1, value2, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdNotBetween(Integer value1, Integer value2) {
                addCriterion("id not between", value1, value2, "id");
                return (Criteria) this;
            }
    
            public Criteria andUserIdIsNull() {
                addCriterion("user_id is null");
                return (Criteria) this;
            }
    
            public Criteria andUserIdIsNotNull() {
                addCriterion("user_id is not null");
                return (Criteria) this;
            }
    
            public Criteria andUserIdEqualTo(Integer value) {
                addCriterion("user_id =", value, "userId");
                return (Criteria) this;
            }
    
            public Criteria andUserIdNotEqualTo(Integer value) {
                addCriterion("user_id <>", value, "userId");
                return (Criteria) this;
            }
    
            public Criteria andUserIdGreaterThan(Integer value) {
                addCriterion("user_id >", value, "userId");
                return (Criteria) this;
            }
    
            public Criteria andUserIdGreaterThanOrEqualTo(Integer value) {
                addCriterion("user_id >=", value, "userId");
                return (Criteria) this;
            }
    
            public Criteria andUserIdLessThan(Integer value) {
                addCriterion("user_id <", value, "userId");
                return (Criteria) this;
            }
    
            public Criteria andUserIdLessThanOrEqualTo(Integer value) {
                addCriterion("user_id <=", value, "userId");
                return (Criteria) this;
            }
    
            public Criteria andUserIdIn(List<Integer> values) {
                addCriterion("user_id in", values, "userId");
                return (Criteria) this;
            }
    
            public Criteria andUserIdNotIn(List<Integer> values) {
                addCriterion("user_id not in", values, "userId");
                return (Criteria) this;
            }
    
            public Criteria andUserIdBetween(Integer value1, Integer value2) {
                addCriterion("user_id between", value1, value2, "userId");
                return (Criteria) this;
            }
    
            public Criteria andUserIdNotBetween(Integer value1, Integer value2) {
                addCriterion("user_id not between", value1, value2, "userId");
                return (Criteria) this;
            }
    
            public Criteria andNumberIsNull() {
                addCriterion("number is null");
                return (Criteria) this;
            }
    
            public Criteria andNumberIsNotNull() {
                addCriterion("number is not null");
                return (Criteria) this;
            }
    
            public Criteria andNumberEqualTo(String value) {
                addCriterion("number =", value, "number");
                return (Criteria) this;
            }
    
            public Criteria andNumberNotEqualTo(String value) {
                addCriterion("number <>", value, "number");
                return (Criteria) this;
            }
    
            public Criteria andNumberGreaterThan(String value) {
                addCriterion("number >", value, "number");
                return (Criteria) this;
            }
    
            public Criteria andNumberGreaterThanOrEqualTo(String value) {
                addCriterion("number >=", value, "number");
                return (Criteria) this;
            }
    
            public Criteria andNumberLessThan(String value) {
                addCriterion("number <", value, "number");
                return (Criteria) this;
            }
    
            public Criteria andNumberLessThanOrEqualTo(String value) {
                addCriterion("number <=", value, "number");
                return (Criteria) this;
            }
    
            public Criteria andNumberLike(String value) {
                addCriterion("number like", value, "number");
                return (Criteria) this;
            }
    
            public Criteria andNumberNotLike(String value) {
                addCriterion("number not like", value, "number");
                return (Criteria) this;
            }
    
            public Criteria andNumberIn(List<String> values) {
                addCriterion("number in", values, "number");
                return (Criteria) this;
            }
    
            public Criteria andNumberNotIn(List<String> values) {
                addCriterion("number not in", values, "number");
                return (Criteria) this;
            }
    
            public Criteria andNumberBetween(String value1, String value2) {
                addCriterion("number between", value1, value2, "number");
                return (Criteria) this;
            }
    
            public Criteria andNumberNotBetween(String value1, String value2) {
                addCriterion("number not between", value1, value2, "number");
                return (Criteria) this;
            }
    
            public Criteria andCreatetimeIsNull() {
                addCriterion("createtime is null");
                return (Criteria) this;
            }
    
            public Criteria andCreatetimeIsNotNull() {
                addCriterion("createtime is not null");
                return (Criteria) this;
            }
    
            public Criteria andCreatetimeEqualTo(Date value) {
                addCriterion("createtime =", value, "createtime");
                return (Criteria) this;
            }
    
            public Criteria andCreatetimeNotEqualTo(Date value) {
                addCriterion("createtime <>", value, "createtime");
                return (Criteria) this;
            }
    
            public Criteria andCreatetimeGreaterThan(Date value) {
                addCriterion("createtime >", value, "createtime");
                return (Criteria) this;
            }
    
            public Criteria andCreatetimeGreaterThanOrEqualTo(Date value) {
                addCriterion("createtime >=", value, "createtime");
                return (Criteria) this;
            }
    
            public Criteria andCreatetimeLessThan(Date value) {
                addCriterion("createtime <", value, "createtime");
                return (Criteria) this;
            }
    
            public Criteria andCreatetimeLessThanOrEqualTo(Date value) {
                addCriterion("createtime <=", value, "createtime");
                return (Criteria) this;
            }
    
            public Criteria andCreatetimeIn(List<Date> values) {
                addCriterion("createtime in", values, "createtime");
                return (Criteria) this;
            }
    
            public Criteria andCreatetimeNotIn(List<Date> values) {
                addCriterion("createtime not in", values, "createtime");
                return (Criteria) this;
            }
    
            public Criteria andCreatetimeBetween(Date value1, Date value2) {
                addCriterion("createtime between", value1, value2, "createtime");
                return (Criteria) this;
            }
    
            public Criteria andCreatetimeNotBetween(Date value1, Date value2) {
                addCriterion("createtime not between", value1, value2, "createtime");
                return (Criteria) this;
            }
    
            public Criteria andNoteIsNull() {
                addCriterion("note is null");
                return (Criteria) this;
            }
    
            public Criteria andNoteIsNotNull() {
                addCriterion("note is not null");
                return (Criteria) this;
            }
    
            public Criteria andNoteEqualTo(String value) {
                addCriterion("note =", value, "note");
                return (Criteria) this;
            }
    
            public Criteria andNoteNotEqualTo(String value) {
                addCriterion("note <>", value, "note");
                return (Criteria) this;
            }
    
            public Criteria andNoteGreaterThan(String value) {
                addCriterion("note >", value, "note");
                return (Criteria) this;
            }
    
            public Criteria andNoteGreaterThanOrEqualTo(String value) {
                addCriterion("note >=", value, "note");
                return (Criteria) this;
            }
    
            public Criteria andNoteLessThan(String value) {
                addCriterion("note <", value, "note");
                return (Criteria) this;
            }
    
            public Criteria andNoteLessThanOrEqualTo(String value) {
                addCriterion("note <=", value, "note");
                return (Criteria) this;
            }
    
            public Criteria andNoteLike(String value) {
                addCriterion("note like", value, "note");
                return (Criteria) this;
            }
    
            public Criteria andNoteNotLike(String value) {
                addCriterion("note not like", value, "note");
                return (Criteria) this;
            }
    
            public Criteria andNoteIn(List<String> values) {
                addCriterion("note in", values, "note");
                return (Criteria) this;
            }
    
            public Criteria andNoteNotIn(List<String> values) {
                addCriterion("note not in", values, "note");
                return (Criteria) this;
            }
    
            public Criteria andNoteBetween(String value1, String value2) {
                addCriterion("note between", value1, value2, "note");
                return (Criteria) this;
            }
    
            public Criteria andNoteNotBetween(String value1, String value2) {
                addCriterion("note not between", value1, value2, "note");
                return (Criteria) this;
            }
        }
    
        public static class Criteria extends GeneratedCriteria {
    
            protected Criteria() {
                super();
            }
        }
    
        public static class Criterion {
            private String condition;
    
            private Object value;
    
            private Object secondValue;
    
            private boolean noValue;
    
            private boolean singleValue;
    
            private boolean betweenValue;
    
            private boolean listValue;
    
            private String typeHandler;
    
            public String getCondition() {
                return condition;
            }
    
            public Object getValue() {
                return value;
            }
    
            public Object getSecondValue() {
                return secondValue;
            }
    
            public boolean isNoValue() {
                return noValue;
            }
    
            public boolean isSingleValue() {
                return singleValue;
            }
    
            public boolean isBetweenValue() {
                return betweenValue;
            }
    
            public boolean isListValue() {
                return listValue;
            }
    
            public String getTypeHandler() {
                return typeHandler;
            }
    
            protected Criterion(String condition) {
                super();
                this.condition = condition;
                this.typeHandler = null;
                this.noValue = true;
            }
    
            protected Criterion(String condition, Object value, String typeHandler) {
                super();
                this.condition = condition;
                this.value = value;
                this.typeHandler = typeHandler;
                if (value instanceof List<?>) {
                    this.listValue = true;
                } else {
                    this.singleValue = true;
                }
            }
    
            protected Criterion(String condition, Object value) {
                this(condition, value, null);
            }
    
            protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
                super();
                this.condition = condition;
                this.value = value;
                this.secondValue = secondValue;
                this.typeHandler = typeHandler;
                this.betweenValue = true;
            }
    
            protected Criterion(String condition, Object value, Object secondValue) {
                this(condition, value, secondValue, null);
            }
        }
    }

    User.java

    package com.cyb.ssm.po;
    
    import java.util.Date;
    
    public class User {
        private Integer id;
    
        private String username;
    
        private Date birthday;
    
        private String sex;
    
        private String address;
    
        public Integer getId() {
            return id;
        }
    
        public void setId(Integer id) {
            this.id = id;
        }
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username == null ? null : username.trim();
        }
    
        public Date getBirthday() {
            return birthday;
        }
    
        public void setBirthday(Date birthday) {
            this.birthday = birthday;
        }
    
        public String getSex() {
            return sex;
        }
    
        public void setSex(String sex) {
            this.sex = sex == null ? null : sex.trim();
        }
    
        public String getAddress() {
            return address;
        }
    
        public void setAddress(String address) {
            this.address = address == null ? null : address.trim();
        }
    }

    UserExample.java

    package com.cyb.ssm.po;
    
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.Iterator;
    import java.util.List;
    
    public class UserExample {
        protected String orderByClause;
    
        protected boolean distinct;
    
        protected List<Criteria> oredCriteria;
    
        public UserExample() {
            oredCriteria = new ArrayList<Criteria>();
        }
    
        public void setOrderByClause(String orderByClause) {
            this.orderByClause = orderByClause;
        }
    
        public String getOrderByClause() {
            return orderByClause;
        }
    
        public void setDistinct(boolean distinct) {
            this.distinct = distinct;
        }
    
        public boolean isDistinct() {
            return distinct;
        }
    
        public List<Criteria> getOredCriteria() {
            return oredCriteria;
        }
    
        public void or(Criteria criteria) {
            oredCriteria.add(criteria);
        }
    
        public Criteria or() {
            Criteria criteria = createCriteriaInternal();
            oredCriteria.add(criteria);
            return criteria;
        }
    
        public Criteria createCriteria() {
            Criteria criteria = createCriteriaInternal();
            if (oredCriteria.size() == 0) {
                oredCriteria.add(criteria);
            }
            return criteria;
        }
    
        protected Criteria createCriteriaInternal() {
            Criteria criteria = new Criteria();
            return criteria;
        }
    
        public void clear() {
            oredCriteria.clear();
            orderByClause = null;
            distinct = false;
        }
    
        protected abstract static class GeneratedCriteria {
            protected List<Criterion> criteria;
    
            protected GeneratedCriteria() {
                super();
                criteria = new ArrayList<Criterion>();
            }
    
            public boolean isValid() {
                return criteria.size() > 0;
            }
    
            public List<Criterion> getAllCriteria() {
                return criteria;
            }
    
            public List<Criterion> getCriteria() {
                return criteria;
            }
    
            protected void addCriterion(String condition) {
                if (condition == null) {
                    throw new RuntimeException("Value for condition cannot be null");
                }
                criteria.add(new Criterion(condition));
            }
    
            protected void addCriterion(String condition, Object value, String property) {
                if (value == null) {
                    throw new RuntimeException("Value for " + property + " cannot be null");
                }
                criteria.add(new Criterion(condition, value));
            }
    
            protected void addCriterion(String condition, Object value1, Object value2, String property) {
                if (value1 == null || value2 == null) {
                    throw new RuntimeException("Between values for " + property + " cannot be null");
                }
                criteria.add(new Criterion(condition, value1, value2));
            }
    
            protected void addCriterionForJDBCDate(String condition, Date value, String property) {
                if (value == null) {
                    throw new RuntimeException("Value for " + property + " cannot be null");
                }
                addCriterion(condition, new java.sql.Date(value.getTime()), property);
            }
    
            protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {
                if (values == null || values.size() == 0) {
                    throw new RuntimeException("Value list for " + property + " cannot be null or empty");
                }
                List<java.sql.Date> dateList = new ArrayList<java.sql.Date>();
                Iterator<Date> iter = values.iterator();
                while (iter.hasNext()) {
                    dateList.add(new java.sql.Date(iter.next().getTime()));
                }
                addCriterion(condition, dateList, property);
            }
    
            protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {
                if (value1 == null || value2 == null) {
                    throw new RuntimeException("Between values for " + property + " cannot be null");
                }
                addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);
            }
    
            public Criteria andIdIsNull() {
                addCriterion("id is null");
                return (Criteria) this;
            }
    
            public Criteria andIdIsNotNull() {
                addCriterion("id is not null");
                return (Criteria) this;
            }
    
            public Criteria andIdEqualTo(Integer value) {
                addCriterion("id =", value, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdNotEqualTo(Integer value) {
                addCriterion("id <>", value, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdGreaterThan(Integer value) {
                addCriterion("id >", value, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdGreaterThanOrEqualTo(Integer value) {
                addCriterion("id >=", value, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdLessThan(Integer value) {
                addCriterion("id <", value, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdLessThanOrEqualTo(Integer value) {
                addCriterion("id <=", value, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdIn(List<Integer> values) {
                addCriterion("id in", values, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdNotIn(List<Integer> values) {
                addCriterion("id not in", values, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdBetween(Integer value1, Integer value2) {
                addCriterion("id between", value1, value2, "id");
                return (Criteria) this;
            }
    
            public Criteria andIdNotBetween(Integer value1, Integer value2) {
                addCriterion("id not between", value1, value2, "id");
                return (Criteria) this;
            }
    
            public Criteria andUsernameIsNull() {
                addCriterion("username is null");
                return (Criteria) this;
            }
    
            public Criteria andUsernameIsNotNull() {
                addCriterion("username is not null");
                return (Criteria) this;
            }
    
            public Criteria andUsernameEqualTo(String value) {
                addCriterion("username =", value, "username");
                return (Criteria) this;
            }
    
            public Criteria andUsernameNotEqualTo(String value) {
                addCriterion("username <>", value, "username");
                return (Criteria) this;
            }
    
            public Criteria andUsernameGreaterThan(String value) {
                addCriterion("username >", value, "username");
                return (Criteria) this;
            }
    
            public Criteria andUsernameGreaterThanOrEqualTo(String value) {
                addCriterion("username >=", value, "username");
                return (Criteria) this;
            }
    
            public Criteria andUsernameLessThan(String value) {
                addCriterion("username <", value, "username");
                return (Criteria) this;
            }
    
            public Criteria andUsernameLessThanOrEqualTo(String value) {
                addCriterion("username <=", value, "username");
                return (Criteria) this;
            }
    
            public Criteria andUsernameLike(String value) {
                addCriterion("username like", value, "username");
                return (Criteria) this;
            }
    
            public Criteria andUsernameNotLike(String value) {
                addCriterion("username not like", value, "username");
                return (Criteria) this;
            }
    
            public Criteria andUsernameIn(List<String> values) {
                addCriterion("username in", values, "username");
                return (Criteria) this;
            }
    
            public Criteria andUsernameNotIn(List<String> values) {
                addCriterion("username not in", values, "username");
                return (Criteria) this;
            }
    
            public Criteria andUsernameBetween(String value1, String value2) {
                addCriterion("username between", value1, value2, "username");
                return (Criteria) this;
            }
    
            public Criteria andUsernameNotBetween(String value1, String value2) {
                addCriterion("username not between", value1, value2, "username");
                return (Criteria) this;
            }
    
            public Criteria andBirthdayIsNull() {
                addCriterion("birthday is null");
                return (Criteria) this;
            }
    
            public Criteria andBirthdayIsNotNull() {
                addCriterion("birthday is not null");
                return (Criteria) this;
            }
    
            public Criteria andBirthdayEqualTo(Date value) {
                addCriterionForJDBCDate("birthday =", value, "birthday");
                return (Criteria) this;
            }
    
            public Criteria andBirthdayNotEqualTo(Date value) {
                addCriterionForJDBCDate("birthday <>", value, "birthday");
                return (Criteria) this;
            }
    
            public Criteria andBirthdayGreaterThan(Date value) {
                addCriterionForJDBCDate("birthday >", value, "birthday");
                return (Criteria) this;
            }
    
            public Criteria andBirthdayGreaterThanOrEqualTo(Date value) {
                addCriterionForJDBCDate("birthday >=", value, "birthday");
                return (Criteria) this;
            }
    
            public Criteria andBirthdayLessThan(Date value) {
                addCriterionForJDBCDate("birthday <", value, "birthday");
                return (Criteria) this;
            }
    
            public Criteria andBirthdayLessThanOrEqualTo(Date value) {
                addCriterionForJDBCDate("birthday <=", value, "birthday");
                return (Criteria) this;
            }
    
            public Criteria andBirthdayIn(List<Date> values) {
                addCriterionForJDBCDate("birthday in", values, "birthday");
                return (Criteria) this;
            }
    
            public Criteria andBirthdayNotIn(List<Date> values) {
                addCriterionForJDBCDate("birthday not in", values, "birthday");
                return (Criteria) this;
            }
    
            public Criteria andBirthdayBetween(Date value1, Date value2) {
                addCriterionForJDBCDate("birthday between", value1, value2, "birthday");
                return (Criteria) this;
            }
    
            public Criteria andBirthdayNotBetween(Date value1, Date value2) {
                addCriterionForJDBCDate("birthday not between", value1, value2, "birthday");
                return (Criteria) this;
            }
    
            public Criteria andSexIsNull() {
                addCriterion("sex is null");
                return (Criteria) this;
            }
    
            public Criteria andSexIsNotNull() {
                addCriterion("sex is not null");
                return (Criteria) this;
            }
    
            public Criteria andSexEqualTo(String value) {
                addCriterion("sex =", value, "sex");
                return (Criteria) this;
            }
    
            public Criteria andSexNotEqualTo(String value) {
                addCriterion("sex <>", value, "sex");
                return (Criteria) this;
            }
    
            public Criteria andSexGreaterThan(String value) {
                addCriterion("sex >", value, "sex");
                return (Criteria) this;
            }
    
            public Criteria andSexGreaterThanOrEqualTo(String value) {
                addCriterion("sex >=", value, "sex");
                return (Criteria) this;
            }
    
            public Criteria andSexLessThan(String value) {
                addCriterion("sex <", value, "sex");
                return (Criteria) this;
            }
    
            public Criteria andSexLessThanOrEqualTo(String value) {
                addCriterion("sex <=", value, "sex");
                return (Criteria) this;
            }
    
            public Criteria andSexLike(String value) {
                addCriterion("sex like", value, "sex");
                return (Criteria) this;
            }
    
            public Criteria andSexNotLike(String value) {
                addCriterion("sex not like", value, "sex");
                return (Criteria) this;
            }
    
            public Criteria andSexIn(List<String> values) {
                addCriterion("sex in", values, "sex");
                return (Criteria) this;
            }
    
            public Criteria andSexNotIn(List<String> values) {
                addCriterion("sex not in", values, "sex");
                return (Criteria) this;
            }
    
            public Criteria andSexBetween(String value1, String value2) {
                addCriterion("sex between", value1, value2, "sex");
                return (Criteria) this;
            }
    
            public Criteria andSexNotBetween(String value1, String value2) {
                addCriterion("sex not between", value1, value2, "sex");
                return (Criteria) this;
            }
    
            public Criteria andAddressIsNull() {
                addCriterion("address is null");
                return (Criteria) this;
            }
    
            public Criteria andAddressIsNotNull() {
                addCriterion("address is not null");
                return (Criteria) this;
            }
    
            public Criteria andAddressEqualTo(String value) {
                addCriterion("address =", value, "address");
                return (Criteria) this;
            }
    
            public Criteria andAddressNotEqualTo(String value) {
                addCriterion("address <>", value, "address");
                return (Criteria) this;
            }
    
            public Criteria andAddressGreaterThan(String value) {
                addCriterion("address >", value, "address");
                return (Criteria) this;
            }
    
            public Criteria andAddressGreaterThanOrEqualTo(String value) {
                addCriterion("address >=", value, "address");
                return (Criteria) this;
            }
    
            public Criteria andAddressLessThan(String value) {
                addCriterion("address <", value, "address");
                return (Criteria) this;
            }
    
            public Criteria andAddressLessThanOrEqualTo(String value) {
                addCriterion("address <=", value, "address");
                return (Criteria) this;
            }
    
            public Criteria andAddressLike(String value) {
                addCriterion("address like", value, "address");
                return (Criteria) this;
            }
    
            public Criteria andAddressNotLike(String value) {
                addCriterion("address not like", value, "address");
                return (Criteria) this;
            }
    
            public Criteria andAddressIn(List<String> values) {
                addCriterion("address in", values, "address");
                return (Criteria) this;
            }
    
            public Criteria andAddressNotIn(List<String> values) {
                addCriterion("address not in", values, "address");
                return (Criteria) this;
            }
    
            public Criteria andAddressBetween(String value1, String value2) {
                addCriterion("address between", value1, value2, "address");
                return (Criteria) this;
            }
    
            public Criteria andAddressNotBetween(String value1, String value2) {
                addCriterion("address not between", value1, value2, "address");
                return (Criteria) this;
            }
        }
    
        public static class Criteria extends GeneratedCriteria {
    
            protected Criteria() {
                super();
            }
        }
    
        public static class Criterion {
            private String condition;
    
            private Object value;
    
            private Object secondValue;
    
            private boolean noValue;
    
            private boolean singleValue;
    
            private boolean betweenValue;
    
            private boolean listValue;
    
            private String typeHandler;
    
            public String getCondition() {
                return condition;
            }
    
            public Object getValue() {
                return value;
            }
    
            public Object getSecondValue() {
                return secondValue;
            }
    
            public boolean isNoValue() {
                return noValue;
            }
    
            public boolean isSingleValue() {
                return singleValue;
            }
    
            public boolean isBetweenValue() {
                return betweenValue;
            }
    
            public boolean isListValue() {
                return listValue;
            }
    
            public String getTypeHandler() {
                return typeHandler;
            }
    
            protected Criterion(String condition) {
                super();
                this.condition = condition;
                this.typeHandler = null;
                this.noValue = true;
            }
    
            protected Criterion(String condition, Object value, String typeHandler) {
                super();
                this.condition = condition;
                this.value = value;
                this.typeHandler = typeHandler;
                if (value instanceof List<?>) {
                    this.listValue = true;
                } else {
                    this.singleValue = true;
                }
            }
    
            protected Criterion(String condition, Object value) {
                this(condition, value, null);
            }
    
            protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
                super();
                this.condition = condition;
                this.value = value;
                this.secondValue = secondValue;
                this.typeHandler = typeHandler;
                this.betweenValue = true;
            }
    
            protected Criterion(String condition, Object value, Object secondValue) {
                this(condition, value, secondValue, null);
            }
        }
    }

    com.cyb.ssm.service

    路径:src/main/java

    ItemService.java

    package com.cyb.ssm.service;
    
    import java.util.List;
    
    import com.cyb.ssm.po.Item;
    
    public interface ItemService {
        List<Item> queryItemList();
    }

    ItemServiceImpl.java

    package com.cyb.ssm.service;
    
    import java.util.List;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import com.cyb.ssm.mapper.ItemMapper;
    import com.cyb.ssm.po.Item;
    import com.cyb.ssm.po.ItemExample;
    import com.cyb.ssm.po.ItemExample.Criteria;
    @Service
    public class ItemServiceImpl implements ItemService {
    
        @Autowired
        private ItemMapper mapper;
        @Override
        public List<Item> queryItemList() {
            //使用逆向工程代码完成持久层查询
            ItemExample example=new ItemExample();
    //        Criteria criteria = example.createCriteria();
    //        criteria.andIdEqualTo(1);
            return mapper.selectByExample(example);
        }
    }

    web.xml(重要!加载父子容器)

    路径:src/main/webapp/WEB-INF/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"
        version="2.5">
        <!-- 配置前端控制器加载spring子容器 -->
        <servlet>
            <servlet-name>ssm</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:spring/springmvc.xml</param-value>
            </init-param>
            <load-on-startup>2</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>ssm</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
        <!-- 配置ContextLoaderListener监听器加载spring父容器 -->
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring/applicationContext-*.xml</param-value>
        </context-param>
        <!-- 监听器 -->
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
    </web-app>

    item-list.jsp

    路径:src/main/webapp/WEB-INF/jsp/item/item-list.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"  prefix="fmt"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>查询商品列表</title>
    </head>
    <body> 
    <form action="${pageContext.request.contextPath }/itemList.do" method="post">
    查询条件:
    <table width="100%" border=1>
    <tr>
    <td><input type="submit" value="查询"/></td>
    </tr>
    </table>
    商品列表:
    <table width="100%" border=1>
    <tr>
        <td>商品名称</td>
        <td>商品价格</td>
        <td>生产日期</td>
        <td>商品描述</td>
        <td>操作</td>
    </tr>
    <c:forEach items="${itemList }" var="item" varStatus="status">
    <tr>
        <td><input type="text" name="itemList[${status.index }].name" value="${item.name }"/></td>
        <td>${item.price }</td>
        <td><fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
        <td>${item.detail }</td>
        
        <td><a href="${pageContext.request.contextPath }/itemEdit.do?id=${item.id}">修改</a></td>
    
    </tr>
    </c:forEach>
    
    </table>
    </form>
    </body>
    
    </html>

     项目结构图

     

     数据库表结构

     运行

     

     项目源码

    直接下载

  • 相关阅读:
    可在广域网部署运行的QQ高仿版 -- GG叽叽(源码)
    区间合并
    二分查找算法模板
    神经网络详解(RNN/LSTM)
    反向传播算法推导过程(非常详细)
    机器学习-回归问题(Regression)
    从RNN到LSTM
    神经网络浅讲:从神经元到深度学习
    部署高并发python后端(Systemd+Nginx+Gunicorn+Gevent+Supervisor+Flask )
    产品笔记 | 软件版本号—规范与命名规则
  • 原文地址:https://www.cnblogs.com/chenyanbin/p/11950761.html
Copyright © 2020-2023  润新知