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,大家一起学习一起进步。