2.6 Mybatis——参数处理之sql注入

1.应用场景

查询满足某一不确定情况下的用户信息,具体查询属性以运行测试输入为准。

2.实例问题描述

倒序查询User表中满足某一条件的用户信息,具体查询条件按运行测试输入属性为准。

3.解决方法

(1)UserDao层方法:在具体方法形参前加入 @Param("str")

 (2)UserDao.java的映射文件:在sql注入查询字段的位置写为${str}

(3)运行测试:

2.6 Mybatis——参数处理之sql注入_第1张图片

 4.关键代码展示:

UserDao.java:

package com.xs.dao;

import com.xs.pojo.User;
import org.apache.ibatis.annotations.Param;
import org.junit.Test;

import java.util.HashMap;
import java.util.List;

public interface UserDao {

    //SQL注入——排序练习 xxxDao()的形参前加注解@Param
    List getUserOrderBy(@Param("str") String str);
}

UserDao的映射文件——UserMapper.xml:






    
    

运行测试:

package com.xs.test;

import com.xs.dao.UserDao;
import com.xs.pojo.Group;
import com.xs.pojo.User;
import com.xs.utils.MyBatisUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

import java.util.HashMap;
import java.util.List;

public class ParamTest {

    @Test
    public void getUserOrderByTest(){
        SqlSession sqlSession = MyBatisUtil.getSqlSession();

        UserDao mapper = sqlSession.getMapper(UserDao.class);

        List users=mapper.getUserOrderBy("age");
        System.out.println(users);

        sqlSession.commit();
        sqlSession.close();
    }
}

你可能感兴趣的:(Java框架,Mybatis的SQL注入)