可以主要看标记为重要的
一、org.apache.ibatis.jdbc.SQL
SQL工具类:继承至AbstractSQL,只重写了该类的getSelf()方法
@Override
public SQL getSelf() {
return this;
}
AbstractSQL:
内部维护了一个SQLStatement内部类,用于描述一个sql语句,作用是拼接sql。
具体实现
1.在调用SELECT(),FROM()这些方法时,把方法参数写入到SQLStatement内部类的对映字段中
2.调用SQLStatement类的toString()方法,方法会调用SQLStatement对象的sql()方法来完成sql语句的拼接
3.sql()方法会根据statementType(SQLStatement类中的变量)来调不同的sql语句拼接方法insertSQL(builder),selectSQL(builder)
4.不同sql语句的拼接方法中,最终会调用sqlClause()方法完成sql语句的拼接,内容很简单,不再详细讲述。
二、org.apache.ibatis.jdbc.ScriptRunner
ScriptRunner工具类:读取脚本文件中的sql语句并执行。
创建:
public ScriptRunner(Connection connection) {
t