MyBatis(3)连接池,动态sql,多表操作

8.连接池
        8.1 mybatis中的连接池3种配置选项:
        8.2 unpool原理分析:
        8.3 pool原理分析:
        8.4 JDNI介绍:
9.动态sql
        9.1 where  if  foreach 标签:
10.多表操作
        10.1 一对一操作(association):
        10.2 多对多操作(collection):
        10.3 延迟加载:


8.连接池

    8.1 mybatis中的连接池3种配置选项:

        POOLED 采用传统的javax.sql.DataSource规范中的连接池,mybatis中有针对规范的实现
        UNPOOLED 采用传统的获取连接的方式,虽然也实现Javax.sql.DataSource接口,但是并没有使用池的思想
        JNDI 采用服务器提供的JNDI技术实现,来获取DataSource对象,不同服务器所能拿到DataSource不一样。

    8.2 unpool原理分析:

        MyBatis 内部分别定义了实现了 java.sql.DataSource 接口的 UnpooledDataSource,PooledDataSource 类来表示 UNPOOLED、POOLED 类型的数据源。

        UnpooledDataSource源码如下

    8.3 pool原理分析:

        MyBatis连接池里面使用集合来放置连接对象.有两个池子,一个空闲池,一个活动池。二者加起来等于是连接池能用的最大连接数。

.

    8.4 JDNI介绍:(扩展)

        JNDI:一种标准的Java命名系统接口(模仿windows注册表,说白了就是把资源取个名字,再根据名字来找资源。)

9.动态sql

        编译时无法确定,只有等到程序运行起来,在执行的过程中才能确定,这种SQL叫做动态SQL。    

    9.1 where  if  foreach 标签

10.多表操作

    10.1 一对一操作(association):

    10.2 多对多操作(collection):

            通过account表中的uid进行关联

        通过中间表account_user进行关联

    10.3 延迟加载

        SqlMapConfig.xml文件中追加配置  

            lazyLoadingEnabled:是否启用延迟加载,默认为false
            aggressiveLazyLoading:是否启用按需加载,默认为true

        collection和assocation中追加标签嵌套查询

            select:对应xml的namespace + sql的id
            column:作为select语句的参数传入

你可能感兴趣的:(MyBatis(3)连接池,动态sql,多表操作)