myBatis调用存储过程

1.xml配置
<select id="queryPersonCountByIdWithProcedure" statementType="CALLABLE" parameterType="HashMap">
    {
        CALL queryPersonByIdWithProcedure(
            #{pid,jdbcType = INTEGER,mode = IN},
            #{pcount,jdbcType= INTEGER,mode = OUT}
        )
    }
select>
2.接口
package yang.text.mapper;
import java.util.Map;

public interface personMapper {
 void queryPersonCountByIdWithProcedure(Map<String,Object> proMap);
}
3.测试类
package yang.text.entity;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import yang.text.mapper.personMapper;

import java.io.Reader;
import java.util.HashMap;
import java.util.Map;

public class myBatisTest {
    public static void main(String[] args) throws Exception{
        Reader reader = Resources.getResourceAsReader("config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);//可以通过build的第二个参数来改变数据库环境
        SqlSession sqlSession = sqlSessionFactory.openSession();
        personMapper mapper = sqlSession.getMapper(personMapper.class);
  Map<String,Object> proMap = new HashMap<>();
        proMap.put("pid",1);
        mapper.queryPersonCountByIdWithProcedure(proMap);
        Object pcount = proMap.get("pcount");
        System.out.println(pcount);
        sqlSession.close();
    }
}

你可能感兴趣的:(javaweb)