zoukankan      html  css  js  c++  java
  • 关于mybatis的<selectKey>中的keyColumn

    <mapper namespace="com.dao.EmployeeDao">
    
        <insert id="insert">
            <selectKey order="BEFORE" keyColumn="employeeId,employeeGender" keyProperty="employeeId,employeeGender" resultType="com.entity.Employee">
                select employee_id employeeId,employee_gender employeeGender from employee where employee_id=13
            </selectKey>
            insert into subtable(employee_id,employee_name,employee_gender) values (#{employeeId},"mdzz",#{employeeGender})
        </insert>
    </mapper>
    

      keyColumn是要和select语句中的表名相对应的实体类的字段对应的,但同时他也要和select语句中的列名对应,因此要取别名一致。

    keyProperty是和insert语句中的values内的参数一致,也就是和insert语句中的表的对应实体类的字段一致,才可以通过反射完成

    java代码

    public interface EmployeeDao {
        int insert(Employee employee);
    }
    

      测试代码

    @Test
        public void testInsert() {
            Employee employee = new Employee();
            EmployeeDao employeeDao = MapperFactory.generateMapper(EmployeeDao.class);
            employeeDao.insert(employee);
            System.out.println(employee);
        }
    

      表说明:创建了一个employee表,和一个副标subtable,列和employee完全一样,列名都是通过“_”连接的

    employee | CREATE TABLE `employee` (
      `employee_id` int(11) NOT NULL AUTO_INCREMENT,
      `employee_name` char(30) DEFAULT NULL,
      `employee_gender` binary(1) DEFAULT NULL,
      `employee_salary` decimal(10,2) DEFAULT NULL,
      `dept_id` int(11) DEFAULT NULL,
      PRIMARY KEY (`employee_id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8mb4 |
    

      

  • 相关阅读:
    php投票系统
    php登陆和注册
    php常见报错
    session和cookie的区别
    php加密方法有哪些
    链接数据库封装类
    php数据库批量删除
    三傻大闹宝莱坞
    巴霍巴利王
    布拉德的中年危机
  • 原文地址:https://www.cnblogs.com/woyujiezhen/p/11643944.html
Copyright © 2011-2022 走看看