Mybatis深入-如何使用传递不同类型的参数(以及等量替换符号的使用)

1.在对一个数据库进行分页查询的时候,往往需要传递多个参数,比如:pagerOffset、pagerSize、查询的关键字、查询的order、查询的升降序;

如何传递这么多参数:需要组成一个Map进行传递;



2.在进行按照某个字段进行升序或者降序查询的时候,因为需要保持原样,不能因为是字符串类型的数据加上引号。需要进行等量替换,使用${ },而不能使用#{};



public void test03() {
		String resource = "mybatis-config.xml";
		InputStream inputStream = null;
		try {
			inputStream = Resources.getResourceAsStream(resource);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		SqlSession session = sqlSessionFactory.openSession();
		try {
			Map<String,Object> map = new HashMap<String, Object>();
			map.put("name", "%1%"); //1代表查询的关键字,模糊查询的符号放在这里,如果放在配置文件中,将会报错
			map.put("sortby", "id");
			map.put("order", "ASC");
			map.put("pagerOffset", 0);
			map.put("pagerSize", 15);
			List<User> list =session.selectList("com.milks.mapper.User.find", map);
			
			System.out.println(list.size());
			for (User user : list) {
				System.out.println(user.getNickname());
			}
		  
		} finally {
		  session.close();
		}
		
	}


注意等量替换的符号:
  <select id="find" parameterType="map" resultType="User">
  	select * from t_user where (nickname like #{name} or username like #{name}) 
  	order by ${sortby} ${order} limit #{pagerOffset},#{pagerSize}
  </select>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值