mybatis 源码sql

  • org.apache.ibatis.jdbc.AbstractSQL#INSERT_INTO
  • 执行的测试方法org.apache.ibatis.jdbc.SQLTest#batchInsertWithMultipleInsertValues
@Test  
void batchInsertWithMultipleInsertValues() {  
    final String sql \= new SQL() {{  
        INSERT\_INTO("TABLE\_A");  
        INTO\_COLUMNS("a", "b");  
        INTO\_VALUES("#{a1}");  
        INTO\_VALUES("#{b1}");  
        ADD\_ROW();  
        INTO\_VALUES("#{a2}");  
        INTO\_VALUES("#{b2}");  
    }}.toString();  
  
    assertThat(sql).isEqualToIgnoringWhitespace("INSERT INTO TABLE\_A (a, b) VALUES (#{a1}, #{b1}), (#{a2}, #{b2})");  
}
public T INSERT\_INTO(String tableName) {  
    sql().statementType \= SQLStatement.StatementType.INSERT;  
  
    // 下面这句话执行后 sql文多了 INSERT INTO 来源是从哪里来的  
  sql().tables.add(tableName);  
    return getSelf();  
}

进入方法前
image.png
执行 sql().tables.add(tableName);
image.png

请问INSERT INTO 是如何添加上去的

阅读 2.9k
1 个回答

在idea 的变量监控时会调用toString()方法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题