有一次在写java web后端的代码中发现了一个问题,那就是我将parameterType放在resultType之前的时候,发现程序启动的时候突然报错,说找不到某某map,我也不知道,所以感觉非常怪.所以记得以后这个resultType还是放在最前面会比较好.…
parameterType.resultType的数据类型要写全限定类名或者别名. mybatis已经给常用的数据类型起好了别名,参考mybatis.pdf  3.1.1小节: 基本数据类型很少用,一般都是用包装类.总结下来就是:字母全小写. 如果在mybatis全局配置文件中使用包扫描: <typeAliases> <package name="com.chy.pojo"/></typeAliases> 则该包下所有类的别名不区分大小写.比如Use…
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…
MyBatis的查询在进行映射的时候,返回值类型可以使用resultType同时也可以使用resultMap.前者表示直接的返回值类型,一般是domain名称,当然这里可以写domain的全部路径也可以简写这样就得在MyBatis的配置文件中扫描实体.而后者表示对外部的ResultMap的引用,两者不能同时存在. MyBatis在进行查询映射时,其实是和jdbcTemplate中queryForList一样是将查询出来的每一个属性都放在一个对应的map里的,其中键是属性名,值是对应的值. 当我们…
resultType和resultMap只能有一个成立,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,resultMap解决复杂查询是的映射问题.比如:列名和对象属性名不一致时可以使用resultMap来配置:还有查询的对象中包含其他的对象等. Xml配置文件:MyBatis-Configuration.xml <?xml version="1.0" encoding="UTF-8" ?> <!D…
假设数据库中一个user表 此时只有id为1的数据,当我们查询id为2的年龄时的时候返回值为null 但是在mybatis中预定义UserMapper.xml中 <select id="findUserAgeById" parameterType="int" resultType="int"> SELECT user.age  FROM user WHERE id = #{id} </select> 此时会报错:attem…
mybatis学习(七)——resultType解析 resultType是sql映射文件中定义返回值类型,返回值有基本类型,对象类型,List类型,Map类型等.现总结一下再解释 总结: resultType: 1.基本类型  :resultType=基本类型 2.List类型:   resultType=List中元素的类型 3.Map类型    单条记录:resultType =map 多条记录:resultType =Map中value的类型 1.对象类型 对于对象类型resultTyp…
自己在写mapper.xml的时候 吧parameterType和resultType的两个类搞混了 对调了一下  以至于查询了半天查询不出结果 <select id="findPatientList" parameterType="com.jkw100.ssm.po.PatientQueryVo" resultType="com.jkw100.ssm.po.PatientCustom"> parameterType放的是包装类 包装…
parameterType                                                                             resultType        基础类型: 当#{}和${}的总数量等于一个的时候使用                            pojo类型 pojo类型: 当#{}和${}的总数量大于一个的时候使用                            list(如果返回的类型是一个list,那么r…
parameterType #{} 和 ${} 1.#{}实现的是向prepareStatement中的预处理语句中设置参数值,sql语句中#{}表示一个占位符即?. 2.使用占位符#{}可以有效防止sql注入,在使用时不需要关心参数值的类型,mybatis会自动进行java类型和jdbc类型的转换.#{}可以接收简单类型值或pojo属性值,如果parameterType传输单个简单类型值,#{}括号中可以是value或其它名称. ${}和#{}不同,通过${}可以将parameterType…