• 阶段3 1.Mybatis_03.自定义Mybatis框架_6.自定义Mybatis的编码-实现基于XML的查询所有操作


    接下来就可以写创建代理对象的方法了
    类加载器,代理谁,就用谁的加载器,因为这里用daoInterfaceClass.getClassLoader()

    第二个代理谁就要和谁有相同的接口,daoInterfaceClass本身就是一个接口,这里创建一个类的数组把daoInterfaceClass传进去。

    如何代理呢?需要写一个自己的代理方式。MapperProxy这个类是没有的。

    创建MapperProxy

    实现接口InvocationHandler

    重写invoke方法

    这里把Mapper对象传递过来。

    代理类的实现里面。定义Mappers然后通过构造函数去接收。

    此时可以执行sql语句了 

    declare


    美 [dɪ'kler]
    英 [dɪ'kleə(r)]

    • v.声明;宣布;声称;断言
    • 网络宣告;数组声明;宣告行为


    通过key获取到mapper对象。

    这是一个runntime异常。

    复制提供的工具类


    放到我们的utils包下面。


    改下报名,里面就是执行selectList方法。

    导入Mapper的包。


    工具类需要传递一个Connection参数

    这里定义conn。通过构造函数传递进来。


    DefaultSqlSession里面 需要高一个conn对象。传过去。但是这里目前还没有。我们还要再close方法里面是放Connection


    在构造函数内赋值,把cfg这个对象传递过去

    clsoe方法用try catch捕获异常。并判断是否为null

    新建类DataSourceUtil

    用户创建数据源的工具类。



    直接return 创建好的Connection对象。

    修正一个地方

    下面用到putAll方法,上面就必须先new一个空的对象出来。

    测试



    最终的结构


    查询所有最终就调用工具类



    其实就是两件事,1创建代理对象 2实现查询所有。


     

  • 相关阅读:
    mvc 在ii7上发布时遇到的问题只解决
    @Html.Raw 显示Html的标签
    补发————grid布局
    补发————DOM与BOM
    web实验博客3.css-position
    web专业课学习及往后方向发展
    bom&dom
    网格代码
    简单用户注册表单
    自我介绍
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/11300299.html
Copyright © 2020-2023  润新知