在dao层给map赋值 纠正一下应该把dd作为传入而不是sbiId; sqlMap中的parameterType="java.util.Map", 就 OK package com.ldrc.srm.jczx.web.results.module.screen; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.spr…
我写这个主要是为了解决sql注入 原sql有sql注入, 结果:select req_msg_id from account_message_info where req_msg_id in ('1230','1231','1232','1233','1234') and user_card_no in('123','123','123','123','123') 但是#直接替换的话,是只有一个字符串了, 结果: select req_msg_id from account_message_in…
mybatis中parameterType可以写的别名 https://blog.csdn.net/sdzhangshulong/article/details/51749807 _byte byte _long long _short short _int int _integer int _double double _float float _boolean boolean string String byte Byte long Long short Short int Integer…
前言:最近在做一个通用查询单表的组件,所以 sql 的写法就是 select *,然后 resultType="map" ,然后使用 jackson @ResponseBody 返回前端报错. 转载请注明出处:https://www.cnblogs.com/yuxiaole/p/9708485.html 后台报错: 26-Sep-2018 22:18:08.209 WARNING [http-apr-8080-exec-8] org.springframework.web.servle…
mybatis中的map.xml文件中sql语句需要分号吗? :你是说sql介绍的分号吗?不需要的…
如果后台程序没有实体对应mysql的数据表. 而mybatis想要查询mysql这个数据表的数据,返回给应用程序. 应用程序该如何接收? ===================================================== mybatis查询 结果 用map接收,无实体接收 [如果有主表子表1:N,例如主表查出来10条,每条主表对应N条子表数据,则返回List条数,也就是Map个数就是10*N条 ,需要自己处理查询后的结果集] 1.mapper.xml需要这么写: SELE…
编译工具:IntelliJ IDEA 项目结构:maven 项目框架:SSM 问题:java目录下,mybatis的配置文件(map.xml)无法编译到class文件夹下 问题原因:在idea中,直接把资源文件放在src文件夹下,如果不进行设置,是不能被找到的. 解决方法: pom文件中给build添加resource配置 <build> <resources> <resource> <directory>src/main/java</director…
默认情况下,使用#{}语法,MyBatis会产生PreparedStatement语句中,并且安全的设置PreparedStatement参数,这个过程中MyBatis会进行必要的安全检查和转义. #相当于对数据 加上 双引号,$相当于直接显示数据 示例1:执行SQL:select * from emp where name = #{employeeName}参数:employeeName=>Smith解析后执行的SQL:select * from emp where name = ? 示例2:…
MyBatis基础入门<二十>动态SQL(foreach) 1. 迭代一个集合,通常用于in条件 2. 属性 > item > index > collection : 必须指定 > list > array > map-key > open > separator > close >>> 代码示例: ClientMapper.java 接口 ClientMapper.xml文件 注意: 由于接口中定义的getClient…
MyBatis基础入门<十九>动态SQL(set,trim) 描述: 1. 问题 : 更新用户表数据时,若某个参数为null时,会导致更新错误 2. 分析: 正确结果: 若某个参数为null,则不需要更新,保持数据库原值 3. 如何处理 > if > set ClientMapper.xml 文件 ClientMapper.java 测试方法: 测试结果: >>> trim  >> 属性 > prefix > suffix > pre…
MyBatis基础入门<十八>动态SQL(if-where) 描述: 代码是在<MyBatis基础入门<十七>动态SQL>基础上进行改造的,不再贴所有代码,仅贴改动过的代码. ClientMapper.xml文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0/…
// 获得品牌下的商品 Map<String, Object> params = new HashMap<String, Object>(); params.put("brands", brandId); List<HashMap<String, Object>> productBrands = productBrandService.getBrandProductByBrandId(params); public List<Has…
1.   传入简单类型 JAVA代码: public User get(Long id) { return (User) getSqlSession().selectOne("com.liulanghan.get" , id); } MAPPER : <select id="findUserListByIdList" parameterType="java.lang.Long" resultType="User">…
一.(转自:https://blog.csdn.net/majinggogogo/article/details/72123185) 映射文件是以<mapper>作为根节点,在根节点中支持9个元素,分别为insert.update.delete.select(增删改查);cache.cache-ref.resultMap.parameterMap.sql. 下文中,我们将首先对增删改进行描述,然后对查进行详细说明,最后对其他五个元素进行简单说明. (1)insert.update.delete…
当在查询的时候需要传入多个参数的时候该怎么办呢: 1,封装成一个Model对象,底层HashMap还是一个 User user=new User(); user.setUserName("zhangsan"); user.setPassword("123456"); queryUserByuserNameAndPass(user);//为返回值类型为User <select id="queryUserByuserNameAndPass" r…
在mybatis映射接口的配置中,有select,insert,update,delete等元素都提到了parameterType的用法,parameterType为输入参数,在配置的时候,配置相应的输入参数类型即可.parameterType有基本数据类型和复杂的数据类型配置. 1. MyBatis的传入参数parameterType类型分两种   1. 1. 基本数据类型:int.string.long.Date;   1. 2. 复杂数据类型:类(JavaBean.Integer等)和Ma…
创建mybatis-config.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <s…
在MyBatis的Mapper.xml文件中,参数的表示方法有两种:一种是使用 "#{XXX}" 的方式表示的,另一种是使用 "${XXX}" 的方式表示的.今天来介绍以下这两种方式的不同之处. 1.#{XXX} "#{XXX}" 是用来表示变量占位符,即将这个变量注入到SQL语句中.这里的变量可以是普通类型的变量(int.java.lang.String.long等),也可以是自定义POJO类中的某个属性(如name.sex等).不管是普通类型…
如果查询的条件有多个的时候,mybatis有三种传入方式: 1.通过注解传入 例如: public interface Mapper(){ public User login(@Param("username")String username,@Param("password") String password); } @Param注解:将对应形参的值在mapper.xml中传入参数时,指定传入参数的名称.指定在mapper.xml中形参的名字(也就是mapper.…
<select id="selectMapTest" parameterType="java.util.HashMap" resultMap="BaseResultMap"> <foreach collection="map1" index="key" item="ent" separator="union"> SELECT * FROM Us…
<!-- 指定日期活动被创建次数查询结果数据集--> <resultMap id="countPlayTimesMap" type="HashMap"> <result property="gid" column="gid"/> <result property="count" column="count" javaType="Inte…
直接上代码: 整体需求就是: 1.分页对象里面有map map里面又有数组对象 2.分页对象里面有list list里面有map map里面有数组对象. public class Page { private Map maps; private List lists; public Map getMaps() { return maps; } public void setMaps(Map maps) { this.maps = maps; } public List getLists() {…
前言:最近在做一个通用查询单表的组件,所以 sql 的写法就是 select *,然后 resultType="map" .如果数据库中的表里有字段类型为 Long 等类型时,mybatis 在执行 sql 时会报错,如果表中有 Blob.Clob 类型在转 json 是也会报错,而且我这里也需要将这几种类型都转为 String 类型到前端. long 类型 sql 报错: Blob/Clob 转 json 报错: 解决方案: 自定义 typeHandle 来统一处理数据库这些特殊的字…
public ServiceMessage<Map<String, String>> getGoodsStockNo( List<Map<String, String>> goodsList) { try { Map<String, String> map = new HashMap<String, String>(); for (Map m : goodsList) { HashMap map2 = iGoodsMapper.get…
/** * 根据goods_no 和 goods_id 来查询商品信息 * * @param goodsNos * @return */ public List<Goods> getGoodsListByIdandNo(Map<String, List> goodsList); public ServiceMessage<List<Goods>> getGoodsListByIdandNo( List<Goods> goodsList) { tr…
<select id="queryGoodsByGoodsNoPcweb" parameterType="List" resultMap="simpleProductExtLucene"> select g.goods_no, wp.PRODUCT_ID, p.product_name, p.drug_treatment, p.drug_prescription_type, p.product_least_order || '' as…
<resultMap type="Map" id="bankMaintainMap"> <result column="bank_name" property="bankName"/> <result column="maintain_time_interval" property="maintainTimeInterval"/> </resul…
在MyBatis的Mapper.xml文件中,参数的表示方法有两种:一种是使用 “#{XXX}” 的方式表示的,另一种是使用 “${XXX}” 的方式表示的.今天来介绍以下这两种方式的不同之处. 1.#{XXX}  “#{XXX}” 是用来表示变量占位符,即将这个变量注入到SQL语句中.这里的变量可以是普通类型的变量(int.java.lang.String.long等),也可以是自定义POJO类中的某个属性(如name.sex等).不管是普通类型还是POJO,只需要记住一点,这是用作一个完全独…
第一种.springMVC和boot通用配置:(Mybatis.xml) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD SQL MAP Config 3.1//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <…
使用mybatis的时候,经常发现一个需求,我怎么知道自己是不是增加/修改/删除数据成功了? 好像执行sql之后都没有结果的.其实不是的,增删改的sql执行之后都会有一个int类型的返回值,表示的意思是这个操作影响的行数.举个例子,如果我们插入一行成功的话,影响的就是一行.如果我们修改一条数据成功的话,那么我们也是影响了一行.如果我们删除一条数据成功的话,那么返回的就是1,表示影响了一行,如果没有删除任何的数据,那么返回值就是0.所以我们经常使用返回值是否大于0来表示是不是修改(增加/更新/删除…