您现在的位置是:首页 > 个人日记个人日记
xml配置mybatis映射注意事项
2019-02-03 18:37:02【个人日记】562人已围观
简介需要注意的配置信息
xml中转义字符应使用HTML中的
<![CDATA[
这里面所有字符原样输出
]]>只能放value的情况仅限于基本数据类型
<!--${只能放value}--><!--使用${}可能会有sql注入--><!--使用"%"#{*}"#"也可以--><select id="findByCategoryName" parameterType="java.lang.String" resultType="com.huangxin.model.ProductCategory">SELECT * FROM product WHERE supplier LIKE '%${value}%'</select>
这种情况可以使用其他
<!--多条件查询--><select id="find" parameterType="java.util.Map" resultType="com.huangxin.model.ProductCategory">SELECT * FROM product WHERE supplier LIKE '%${brand}%' AND id <![CDATA[< #{id}]]><!--原样输出--></select>
在调试中这样写
Map<String, Object> map = new HashMap<String, Object>();map.put("brand", "未知");map.put("id", 5);SqlSession sqlSession = factory.openSession();//通过mybatis的动态代理机制,生成了一个ProductCategory接口实现类ProductCategoryMapper mapper = sqlSession.getMapper(ProductCategoryMapper.class);System.out.println(mapper.find(map));
xml中${}或#{}中的参数值应和Map中的参数值对应
在Mapper.Java接口中应注意形参只能传入一个,如果多个应使用Map等类型
package com.huangxin.mapper;import com.huangxin.model.ProductCategory;import java.util.List;import java.util.Map;public interface ProductCategoryMapper {/*** 多条件查询** @param map*/List<ProductCategory> find(Map<String, Object> map);/*** 根据id删除信息** @param id*/void deleteById(Long id);/*** 通过ProductCategory对象插入信息** @param productCategory*/void insert(ProductCategory productCategory);/*** 更改商品信息** @param productCategory*/void update(ProductCategory productCategory);/*** 查询所有商品信息** @return*/List<ProductCategory> getAll();/*** 根据id查询信息** @param id*/ProductCategory getById(Long id);/*** 模糊查询** @param categoryName* @return*/List<ProductCategory> findByCategoryName(String categoryName);}
以上可以反映出形参唯一,多个参数会报错
如果属性名与数据库列名不一样则配置以下属性,如果一样直接用*表示
配置Mapper.xml文件
<!--Java对象的类型--><resultMap id="名称随意" type="需要与数据库映射的model对象"><!--id为主键,result为普通列名称--><id column="数据库列的名称" property="对象属性的名称"></id><result column="普通列的名称" property="对象属性的名称"></result></resultMap><!--多条件查询--><select id="find" parameterType="java.util.Map" resultMap="跟上面resultMap名称">SELECT * FROM product WHERE supplier LIKE '%${brand}%' AND id <![CDATA[< #{id}]]><!--原样输出--></select>
Tags: JavaWeb
上一篇: spring-05-复杂数据类型注入
下一篇: mybatis-10-自动代码生成
相关文章
随机图文
评论区
2025-11-09 04:27:58
站长
没有登录功能是为了方便大家留言,但留言接口现在被恶意攻击,将关闭留言接口,如有疑问,请联系我的QQ 1538933906/同微信

2019-11-21 21:32:54
我想借鉴你的评论模块
2019-11-21 21:34:02
你的评论时间好像不对耶
2020-02-09 15:47:50
挺不错的