mybatis里mapper接口的参数里传了好多类型的有String有int有long那我在xml的sql语句里parametertype设置为什么

job920 2015-06-27 06:08:25
mybatis里mapper接口的参数里传了好多类型的有String有int有long那我在xml的sql语句里parametertype设置为什么呢参数值怎么从mapper接口传到xml的sql语句里呢
...全文
21985 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
紫色之心 2015-12-26
  • 打赏
  • 举报
回复
引用 11 楼 wang_shx 的回复:
传入参数为Map,结构定义为String,Object 就可以了
当参数列表中有输出型参数的时候,报错了。OUT or INOUT argument 7 for routine XXX is not a variable or NEW pseudo-variable in BEFORE trigger
Inhibitory 2015-06-30
  • 打赏
  • 举报
回复
MySql:
SELECT * FROM user WHERE name like CONCAT('%',#{name},'%')

Oracle:
SELECT * FROM user WHERE name like CONCAT('%',#{name},'%') 或 
SELECT * FROM user WHERE name like '%'||#{name}||'%'

SQLServer:  
SELECT * FROM user WHERE name like '%'+#{name}+'%'

DB2:
SELECT * FROM user WHERE name like CONCAT('%',#{name},'%') 或  
SELECT * FROM user WHERE name like '%'||#{name}||'%'
hello_ssx 2015-06-30
  • 打赏
  • 举报
回复
模糊查询传参数用map是不行的
Inhibitory 2015-06-29
  • 打赏
  • 举报
回复
引用 2 楼 job920 的回复:
[quote=引用 1 楼 Inhibitory 的回复:]
    <select id="findUsers" resultType="domain.User">
        SELECT id, username, password FROM user LIMIT ${offset}, ${count}
    </select>
public interface UserMapper {
    public User findUserById(int id);

    // 使用 @Param 的方式传参数
    public List<User> findUsers(@Param("offset") int offset, @Param("count") int count);
}
你好 你的意思就是说如果有多个参数 就不要写parametertype 是这个意思吗[/quote] 是的,使用@Param注解实现多个参数的功能。
jsdf2008 2015-06-29
  • 打赏
  • 举报
回复
引用 1 楼 Inhibitory 的回复:
    <select id="findUsers" resultType="domain.User">
        SELECT id, username, password FROM user LIMIT ${offset}, ${count}
    </select>
public interface UserMapper {
    public User findUserById(int id);

    // 使用 @Param 的方式传参数
    public List<User> findUsers(@Param("offset") int offset, @Param("count") int count);
}
正解 或者用一个Javabean 或者一个map
job920 2015-06-29
  • 打赏
  • 举报
回复
参数设置为map啊
job920 2015-06-29
  • 打赏
  • 举报
回复
引用 3 楼 boenwan 的回复:
Map 集合
有没有例子啊 主要想传几个参数都做模糊查询啊 就是like 查询啊
job920 2015-06-29
  • 打赏
  • 举报
回复
引用 13 楼 wang_shx 的回复:
在xml对应的sq传入的参数类型是java.util.Map 在代码中定义一个Map,要注意的是Map的key是与xml中的sql使用的参数名称要一一对应 比如: Map<String,Object> arguMap = new HashMap<String,Object>() arguMap.put("name","sfsdfsd") arguMap.put("age",12) select * from people wherer user_name = #{name} and age >#{age}
谢谢 试过了啊 可惜模糊查询不行啊 select * from people wherer user_name like #{name} and age like #{age} 参数传不进来啊
二十亩鱼 2015-06-29
  • 打赏
  • 举报
回复
引用 1 楼 Inhibitory 的回复:
    <select id="findUsers" resultType="domain.User">
        SELECT id, username, password FROM user LIMIT ${offset}, ${count}
    </select>
public interface UserMapper {
    public User findUserById(int id);

    // 使用 @Param 的方式传参数
    public List<User> findUsers(@Param("offset") int offset, @Param("count") int count);
}
有点意思
伯恩dadi 2015-06-29
  • 打赏
  • 举报
回复
Map 集合
wang_shx 2015-06-29
  • 打赏
  • 举报
回复
在xml对应的sq传入的参数类型是java.util.Map 在代码中定义一个Map,要注意的是Map的key是与xml中的sql使用的参数名称要一一对应 比如: Map<String,Object> arguMap = new HashMap<String,Object>() arguMap.put("name","sfsdfsd") arguMap.put("age",12) select * from people wherer user_name = #{name} and age >#{age}
job920 2015-06-29
  • 打赏
  • 举报
回复
引用 1 楼 Inhibitory 的回复:
    <select id="findUsers" resultType="domain.User">
        SELECT id, username, password FROM user LIMIT ${offset}, ${count}
    </select>
public interface UserMapper {
    public User findUserById(int id);

    // 使用 @Param 的方式传参数
    public List<User> findUsers(@Param("offset") int offset, @Param("count") int count);
}
你好 你的意思就是说如果有多个参数 就不要写parametertype 是这个意思吗
job920 2015-06-29
  • 打赏
  • 举报
回复
引用 11 楼 wang_shx 的回复:
传入参数为Map,结构定义为String,Object 就可以了
你项目中有例子吗 给我看下啊 谢谢了啊
wang_shx 2015-06-29
  • 打赏
  • 举报
回复
传入参数为Map,结构定义为String,Object 就可以了
hello_ssx 2015-06-29
  • 打赏
  • 举报
回复
map集合搞定
hadoop333 2015-06-29
  • 打赏
  • 举报
回复
引用 8 楼 Inhibitory 的回复:
[quote=引用 2 楼 job920 的回复:] [quote=引用 1 楼 Inhibitory 的回复:]
    <select id="findUsers" resultType="domain.User">
        SELECT id, username, password FROM user LIMIT ${offset}, ${count}
    </select>
public interface UserMapper {
    public User findUserById(int id);

    // 使用 @Param 的方式传参数
    public List<User> findUsers(@Param("offset") int offset, @Param("count") int count);
}
你好 你的意思就是说如果有多个参数 就不要写parametertype 是这个意思吗[/quote] 是的,使用@Param注解实现多个参数的功能。[/quote]学习一下 也准备用Mybatis了
Inhibitory 2015-06-27
  • 打赏
  • 举报
回复
    <select id="findUsers" resultType="domain.User">
        SELECT id, username, password FROM user LIMIT ${offset}, ${count}
    </select>
public interface UserMapper {
    public User findUserById(int id);

    // 使用 @Param 的方式传参数
    public List<User> findUsers(@Param("offset") int offset, @Param("count") int count);
}

67,516

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧