4.从零点五开始的Java之路(增删改查-客户)

2020-09-07  本文已影响0人  苏坡坡要吃婆婆酥
经过1-3的学习,话不多说了,上代码。
1.先是ConsumerService接口类。
public interface ConsumerService {
    int addConsumer(Consumer consumer);
    List<Consumer> queryAllConsumer(Consumer consumer);
    int updateConsumer(Consumer consumer);
    int delConsumer(Consumer consumer);
}
2.ConsumerMapper接口类。
@Mapper
@Repository
public interface ConsumerMapper {
    int addConsumer(Consumer consumer);
    List<Consumer> queryAllConsumer(Consumer consumer);
    int updateConsumer(Consumer consumer);
    int delConsumer(Consumer consumer);
}

一定要注意@Mapper和@Repository注释。

3.ConsumerServiceImpl类实现方法。
@Service
public class ConsumerServiceImpl implements ConsumerService {
    @Autowired
    ConsumerMapper consumerMapper;

    @Override
    public int addConsumer(Consumer consumer) {
        int result = consumerMapper.addConsumer(consumer);
        return result;
    }

    @Override
    public List<Consumer> queryAllConsumer(Consumer consumer) {
        List<Consumer> consumers = consumerMapper.queryAllConsumer(consumer);
        return consumers;
    }

    @Override
    public int updateConsumer(Consumer consumer) {
        int result = consumerMapper.updateConsumer(consumer);
        return result;
    }

    @Override
    public int delConsumer(Consumer consumer) {
        int result = consumerMapper.delConsumer(consumer);
        return result;
    }
}
4.ConsumerMapper.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.xxx.mums.mapper.ConsumerMapper">
    <resultMap id="BaseResultMap" type="com.xxx.mums.entity.Consumer">
        <id column="consumer_id" jdbcType="INTEGER" property="consumer_id"/>
        <result column="user_id" jdbcType="INTEGER" property="user_id"/>
        <result column="consumer_name" jdbcType="VARCHAR" property="consumer_name"/>
        <result column="consumer_mobile" jdbcType="VARCHAR" property="consumer_mobile"/>
        <result column="consumer_address" jdbcType="VARCHAR" property="consumer_address"/>
        <result column="consumer_remark" jdbcType="VARCHAR" property="consumer_remark"/>
        <result column="consumer_status" jdbcType="INTEGER" property="consumer_status"/>
        <result column="create_time" jdbcType="TIMESTAMP" property="create_time"/>
    </resultMap>

    <!-- 封装数据库字段方便操作,要和values里面的字段对应-->
    <sql id="Base_List">
    user_id, consumer_name,consumer_mobile,consumer_address, consumer_remark
    </sql>

    <!-- 需要查询返回的字段-->
    <sql id="Base_Column_List">
      user_id,consumer_id, consumer_name, consumer_mobile,consumer_address,consumer_remark,consumer_status
    </sql>

    <!-- 数据库-增-->
    <!-- values括里的字段是User实体类里面的字段-->
    <insert id="addConsumer" parameterType="com.xxx.mums.entity.Consumer">
        insert into consumer (<include refid="Base_List"/>)
        values (#{user_id},#{consumer_name},#{consumer_mobile},#{consumer_address},#{consumer_remark})
    </insert>

    <!-- mybatis中的所有查询,都必须返回resultType或者resultMap的值-->
    <!-- 数据库-查-->
    <!--模糊查询-->
    <select id="queryAllConsumer" resultType="com.xxx.mums.entity.Consumer" resultMap="BaseResultMap">
        select * from consumer
        <where>
            consumer_status = 0
            <if test="user_id != null and user_id != 0">
                and user_id = #{user_id}
            </if>
            <if test="consumer_name != null and consumer_name != ''">
                and consumer_name like concat('%',#{consumer_name},'%')
            </if>
            <if test="consumer_mobile != null and consumer_mobile != ''">
                and consumer_mobile like concat('%',#{consumer_mobile},'%')
            </if>
            <if test="consumer_address != null and consumer_address != ''">
                and consumer_address like concat('%',#{consumer_address},'%')
            </if>
            <if test="consumer_remark != null and consumer_remark != ''">
                and consumer_remark like concat('%',#{consumer_remark},'%')
            </if>
        </where>
    </select>

    <!--修改用户信息-->
    <update id="updateConsumer" parameterType="com.xxx.mums.entity.Consumer">
        update consumer
        <set>
            <if test="consumer_name != null and consumer_name != ''">
                consumer_name = #{consumer_name,jdbcType=VARCHAR},
            </if>
            <if test="consumer_mobile != null and consumer_mobile != ''">
                consumer_mobile = #{consumer_mobile,jdbcType=VARCHAR},
            </if>
            <if test="consumer_address != null and consumer_address != ''">
                consumer_address = #{consumer_address,jdbcType=VARCHAR},
            </if>
            <if test="consumer_remark != null and consumer_remark != ''">
                consumer_remark = #{consumer_remark,jdbcType=VARCHAR},
            </if>
        </set>
        where consumer_id = #{consumer_id} and user_id = #{user_id}
    </update>

    <!--删除用户-->
    <!--正常情况下都不会真删,只是修改下数据状态,查询时候不再返回。-->
    <update id="delConsumer" parameterType="com.xxx.mums.entity.Consumer">
        update consumer
        set
            consumer_status = 1
        where consumer_id = #{consumer_id} and user_id = #{user_id}
  </update>


</mapper>

一定要注意parameterType中Consumer的包路径,还有resultMap中的字段前后要一致。睁大你的卡姿兰大眼睛。

5.ConsumerController接口命名操作类。
@RestController
@RequestMapping("/consumer")
public class ConsumerController {

    @Autowired
    ConsumerService service;

    //添加客户
    @RequestMapping(value = "/addConsumer", method = RequestMethod.POST)
    public Response<Object> addConsumer(@RequestBody Consumer consumer) {
        //判断传来的信息是否为空
        if (consumer == null) {
            return new Response<>(500, "客户信息不能为空!");
        }

        int result = service.addConsumer(consumer);
        if (result > 0) {
            return new Response<>(200, "添加成功!");
        }

        return new Response<>(500, "添加失败!");
    }

    //查询客户列表
    @RequestMapping(value = "/getConsumerList", method = RequestMethod.POST)
    public Response<Object> getConsumerList(@RequestBody Consumer consumer) {
        //判断传来的信息是否为空
        if (consumer == null) {
            return new Response<>(500, "查询信息不能为空!");
        }
        List<Consumer> consumers = service.queryAllConsumer(consumer);
        if (consumers != null) {
            return new Response<>(200, "获取成功!", consumers);
        }

        return new Response<>(500, "获取失败!");
    }


    //修改客户信息
    @RequestMapping(value = "/updateConsumer", method = RequestMethod.POST)
    public Response<Object> updateConsumer(@RequestBody Consumer consumer) {
        //判断传来的信息是否为空
        if (consumer == null) {
            return new Response<>(500, "修改信息不能为空!");
        }

        int result = service.updateConsumer(consumer);
        if (result > 0) {
            return new Response<>(200, "修改成功!");
        }

        return new Response<>(500, "修改失败!");
    }

    //删除客户
    @RequestMapping(value = "/delConsumer", method = RequestMethod.POST)
    public Response<Object> delConsumer(@RequestBody Consumer consumer) {
        //判断传来的信息是否为空
        if (consumer == null) {
            return new Response<>(500, "客户信息不能为空!");
        }

        int result = service.delConsumer(consumer);
        if (result > 0) {
            return new Response<>(200, "删除成功!");
        }

        return new Response<>(500, "删除失败!");
    }

}

写到这里一个简单的项目算是基本OK了。大家可以根据自己的需求再多加练习。

有什么问题欢迎指出,毕竟我也才开始学习java,大家一起学习一起进步。

上一篇 下一篇

猜你喜欢

热点阅读