zoukankan      html  css  js  c++  java
  • 反射的简单应用

    将方法和参数传入,service层通过反射调用mapper接口中的方法

    测试结果:

     

    Controller

       @RequestMapping("/invoke/{methodName}/{param}")
        @ResponseBody
        public String invoke(@PathVariable("methodName") String methodName, @PathVariable("param") String param) {
            Employee employee = employeeService.invoke(methodName, param);
            System.out.println("查询结果:" + employee);
            return employee.toString();
        }

    service

      @Override
        public Employee invoke(String methodName, String param) {
            Employee employee = new Employee();
            // 利用反射获取mapper接口中指定方法,执行
            // 获取字节码文件对象
            Class<? extends EmpMapper> clazz = empMapper.getClass();
            try {
                // 获取方法
                Method method = clazz.getDeclaredMethod(methodName, String.class);
                // 执行
                employee = (Employee) method.invoke(empMapper, param);
                // 对某些方法做额外处理
                if ("findEmpByEname".equals(methodName)) {
                    System.out.println("调用了通过名字查询数据方法");
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            return employee;
        }

    mapper接口

    Employee findEmpById(String empno);
    
    Employee findEmpByEname(String ename);

    mapper.xml

    <select id="findEmpById" parameterType="string" resultType="com.alphajuns.pojo.Employee">
            select * from emp where empno = #{empno}
        </select>
    
        <select id="findEmpByEname" parameterType="string" resultType="com.alphajuns.pojo.Employee">
            select * from emp where ename = #{ename}
        </select>
  • 相关阅读:
    取代iframe,实现页面中引入别的页面
    axios请求
    接口跨域
    es7,es8
    promise
    移动端开发调试工具神器--Weinre使用方法
    资本论第一卷笔记
    2018春季实习生校招面经(一)阿里篇
    linux小实验-考勤模拟程序
    在基于debian的deepin或者Ubuntu上双等号“==”和双中括号“[[]]”不能使用的真相
  • 原文地址:https://www.cnblogs.com/alphajuns/p/12639378.html
Copyright © 2011-2022 走看看