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>
  • 相关阅读:
    appium+python自动化测试之webview的处理。
    Mysql为什么要使用视图
    show status 查看各种状态
    MySQL show processlist
    Java爬虫系列(五)
    div p、div>p、div+p、div~p、div.a 、p,span的用法和区别
    Spring Boot 定时任务 -- @Scheduled
    设计模式
    12月15日总结
    成员变量和静态变量的区别
  • 原文地址:https://www.cnblogs.com/alphajuns/p/12639378.html
Copyright © 2011-2022 走看看