MyBatis的!将多个参数传递给Mapper DAO

3 mybatis

我试图将多个参数发送到DAO实现中定义的Mapper函数,但是当参数不是任何类的持有者时,无法发送多个参数.我是说如何修改以下代码 -

obj.getName(int a, int b);
Run Code Online (Sandbox Code Playgroud)

在DAO实现中

public void getAllName() throws PersistenceException {
        SqlSession session = sf.openSession();
        try {
            session.selectList("getNames");         
        } finally {
            session.close();
        }
    }
Run Code Online (Sandbox Code Playgroud)

我想发送a和b来查询getNames.

提前致谢.

And*_*ndy 13

使用Mapper.

interface Mapper
{
     @Select( " select names from names_table where a = #{fieldA} and b = #{fieldB}" )
     List<String> getNames(  @Param("fieldA") String fieldA, @Param("fieldB") String fieldB)
}
Run Code Online (Sandbox Code Playgroud)

@Param标记允许您指定可用于访问sql映射中的参数的内容.此示例显示了@Select标记,但它与xml的工作方式相同.

然后改变你的代码,

public List<String> getAllName() throws PersistenceException {
        SqlSession session = sf.openSession();
        try 
        {
             Mapper mapper = session.getMapper(Mapper.class);
            return mapper.getNames("a","b");
        } finally {
            session.close();
        }
    }
Run Code Online (Sandbox Code Playgroud)

阅读用户指南以获取更多信息.