一、SQL类
如果使用JDBC编写较长的sql时,大概是这样的:
这样拼接起来明显很复杂,且可读性差,mybatis中有一个SQL类,可以用来构建sql,使用SQL类可以把上面的sql写成这样:
这样可以减少字符串拼接时却说空格或者偶尔编写一些不合法的字符等。
该类还有其他方法及作用:
具体源码这里不做分析
二、使用ScriptRunner执行脚本
该类可以用来读取文件并执行其中的sql语句,如下例子:
如上图所示,实例化ScriptRunner需要传入一个Connection对象,然后执行runScript方法即可,ScriptRunner类还提供了一些属性,用来控制SQL脚本的一些行为:
我们可以通过调用这些属性的setter方法对其赋值,从而控制工具类执行sql脚本的行为,下面我们来看下这个执行sql'脚本的方法runScript是怎么实现的:
接下来我们看这个executeLineByLine方法:
继续进入handleLine方法:
三、使用SqlRunner操作数据库
除了查询外,还可以进行增删改:
我们以selectAll方法为例,看看这个SqlRunner是怎么去实现的:
其他的我们前面基本看过,我们看下setParameters方法:
我们再来看看getResultSet方法:
四、MetaObject类(描述对象属性等信息)
五、MetaObject类(描述类的相关信息)
六、ObjectFactory(对象工厂,用来生产类或接口对应的对象)
七、ProxyFactory(代理工厂,用来创建动态代理·对象)