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 |
    

      

  • 相关阅读:
    MORMOT数据库连接池
    TOleDBMSSQLConnectionProperties驱动MSSQL数据库
    mORMot访问远程数据库
    mormot 直接使用UNIDAC引擎操作数据库
    mormot 数据集和JSON互相转换
    Go -- 读取文件内容
    nginx -- 启动, 重启, 关闭
    JS -- 一篇文章掌握RequireJS常用知识
    用JS获取地址栏参数的方法(超级简单)
    git -- 忽略某个文件
  • 原文地址:https://www.cnblogs.com/woyujiezhen/p/11643944.html
Copyright © 2011-2022 走看看