您现在的位置是:首页 > 个人日记个人日记
xml配置mybatis映射注意事项
2019-02-03 18:37:02【个人日记】484人已围观
简介需要注意的配置信息
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
上一篇: mybatis-05-动态SQL
下一篇: spring-01-快速上手
相关文章
随机图文
评论区
2024-12-21 22:30:59
站长
没有登录功能是为了方便大家留言,但留言接口现在被恶意攻击,将关闭留言接口,如有疑问,请联系我的QQ 1538933906/同微信
2019-11-21 21:32:54
我想借鉴你的评论模块
2019-11-21 21:34:02
你的评论时间好像不对耶
2020-02-09 15:47:50
挺不错的