Browse Source

新增多条件查询指定字段

master
xyiege 4 years ago
parent
commit
da480ee409
  1. 11
      src/main/java/cn/chjyj/szwh/mapper/OrderGoodsDetailMapper.java
  2. 3
      src/main/resources/application.properties
  3. 19
      src/main/resources/mapper/szwh/OrderGoodsDetailMapper.xml
  4. 4
      src/main/resources/mybatis/mybatis-config.xml
  5. 23
      src/test/java/cn/chjyj/szwh/mapper/OrderGoodsDetailMapperTest.java

11
src/main/java/cn/chjyj/szwh/mapper/OrderGoodsDetailMapper.java

@ -82,8 +82,17 @@ public interface OrderGoodsDetailMapper {
/**
* search order goods detail in something field
* @param klist
* @param somap
* @return
*/
List<OrderGoodsDetail> searchOrderGoodsInKey(@Param("somap") Map<String,String> somap);
/**
* 多条件查询订单商品详情
* @param qmap 查询条件
* @param field 查询字段
* @return
*/
List<OrderGoodsDetail> getOrderGoodsDetailByMap(@Param("qmap") Map<String,String> qmap,
@Param("field") String field);
}

3
src/main/resources/application.properties

@ -7,6 +7,9 @@ server.port=9090
# 服务请求上下文
#server.servlet.context-path=/chapi
mybatis.mapper-locations=classpath*:/mapper/szwh/*.xml
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
# 开启调试sql语句
logging.level.cn.chjyj.szwh.mapper=DEBUG
#指定redis信息 (如 host, ip, password)
spring.redis.host=localhost

19
src/main/resources/mapper/szwh/OrderGoodsDetailMapper.xml

@ -94,17 +94,28 @@
LIMIT 10
</select>
<!-- 多条件查询订单商品详情 -->
<select id="getOrderGoodsDetailByMap" parameterType="java.util.Map" resultType="cn.chjyj.szwh.bean.OrderGoodsDetail">
SELECT ${field}
FROM <include refid="tbName"/>
<where>
<foreach collection="qmap" item="v" index="k" separator="and">
<if test="k!='field' and k!=null ">
${k} = #{v}
</if>
</foreach>
</where>
</select>
<!-- search in few somthing fields -->
<select id="searchOrderGoodsInKey" parameterType="java.util.Map" resultType="cn.chjyj.szwh.bean.OrderGoodsDetail">
select <include refid="column"/>
<select id="searchOrderGoodsInKey" resultType="cn.chjyj.szwh.bean.OrderGoodsDetail">
select ${field}
from <include refid="tbName"/>
<where>
<foreach collection="somap" item="v" index="k" separator="OR">
${k} like concat("%",#{v},"%")
</foreach>
</where>
</select>
<!--新增用户-->

4
src/main/resources/mybatis/mybatis-config.xml

@ -7,8 +7,8 @@ PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
<setting name="cacheEnabled" value="true" /> <!-- 全局映射器启用缓存 -->
<setting name="useGeneratedKeys" value="true" /> <!-- 允许 JDBC 支持自动生成主键 -->
<setting name="defaultExecutorType" value="REUSE" /> <!-- 配置默认的执行器 -->
<!-- <setting name="logImpl" value="Log4j" /> &lt;!&ndash; 指定 MyBatis 所用日志的具体实现 &ndash;&gt;-->
<setting name="logImpl" value="STDOUT_LOGGING"/>
<setting name="logImpl" value="Log4j" /> <!-- 指定 MyBatis 所用日志的具体实现 -->
<!-- <setting name="logImpl" value="STDOUT_LOGGING"/>-->
<setting name="mapUnderscoreToCamelCase" value="true"/> <!--驼峰式命名 -->
</settings>
</configuration>

23
src/test/java/cn/chjyj/szwh/mapper/OrderGoodsDetailMapperTest.java

@ -8,8 +8,10 @@ import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.event.TransactionalEventListener;
import java.util.HashMap;
import java.util.List;
@ -18,7 +20,7 @@ import java.util.Map;
import static org.junit.Assert.*;
@SpringBootTest
@RunWith(SpringRunner.class)
@RunWith(SpringJUnit4ClassRunner.class)
public class OrderGoodsDetailMapperTest {
@Autowired
private OrderGoodsDetailMapper orderGoodsDetailMapper;
@ -74,4 +76,23 @@ public class OrderGoodsDetailMapperTest {
List<OrderGoodsDetail> oglist = orderGoodsDetailMapper.searchOrderGoodsInKey(somap);
System.out.println(oglist.size());
}
/**
* 多条件查询
*/
@Test
public void mutilConField(){
String field="goods_islicode as goodsIslicode";
Map qmap = new HashMap();
qmap.put("is_deleted","0");
qmap.put("batchcode","1658393424399064");
// qmap.put("field",field);
List<OrderGoodsDetail> odglist = orderGoodsDetailMapper
.getOrderGoodsDetailByMap(qmap,field);
// 流模式输出循环
odglist.stream().forEach(item->{
System.out.println("goods_islicode:"+item.getGoodsIslicode());
});
// System.out.println(odg.getGoodsIslicode());
}
}
Loading…
Cancel
Save