为了账号安全,请及时绑定邮箱和手机立即绑定

通过自动回复机器人学Mybatis---加强版

难度中级
时长 2小时43分
学习人数
综合评分9.77
214人评价 查看评价
9.9 内容实用
9.7 简洁易懂
9.7 逻辑清晰
  • 测试笔记
    查看全部
    0 采集 收起 来源:店小二的自白

    2016-06-30

  • 解析configuration.xml文件,使用DOM方式。
    查看全部
  • 解决重复加载问题
    查看全部
  • 确保该对象的解析方法只被调用一次,设置标记值
    查看全部
  • 源码跟踪 configuration中 SqlSessionFactoryBuilder中build方法开始
    查看全部
  • mybatis遇到spring 1.数据源托管给spring来管理,DB层将消失 2.sqlsession将会托管给spring,组织对象的代码移交给service层,接口式编程将统一由spring来实现,整个dao层将会由之前的接口来替换(小三上位)
    查看全部
    0 采集 收起 来源:接口式编程

    2016-06-24

  • 使用原始的方法开发dao时,在具体的实现类中,调用sqlSession.selectList()时需要传递两个参数,根据第一个参数在配置文件中找具体的sql语句,这里需要注意两个风险,①编码中的namespace 与配置文件中的namespace 一致,②编码中引用的id与配置文件中的id也要一致,手写就会有很大的风险,㈢就是第二个参数的问题,selectList方法中传入的参数是object,而配置文件中是一个pojo对象,那么在编写代码的时候,传递的参数是其他的类型,编译器也不会提示错误,只有程序运行起来的时候,才会出错,④还有返回值,编码中是通过泛型来约束list的,至于list中是什么泛型,编译器都是可以通过的,在配置文件中的返回类型使用resultMap来约束的。 规避以上四个风险的手段,mybatis称之为接口是编程,需要遵循以下规范: 1、 类的映射:使用接口类的全限定名作为配置文件的namespace,完成类与配置文件的对应关系。 2、 方法名:接口方法名与配置文件中将要执行的sql语句的id一样,这样就完成了方法调用的映射。 3、 参数类型:接口方法的输入参数类型和配置文件中sql的parameterType的类型相同 4、 返回值类型:接口方法的返回值类型和配置文件的resultMap的类型相同 具体实现方法:①将调用的接口类传给sqlSession.getMapper(IMessage.class)方法,返回类型就是这个传入参数的类型IMessage,但是这个时候就不在是接口,而是一个具体的实现,调用接口的方法,就可以得到与映射文件一一对应的参数类型。
    查看全部
    0 采集 收起 来源:接口式编程

    2016-06-24

  • 1.看源码的能力 2.提高编码的能力 3.学会框架上解决问题的思维与常用手段 4.框架的设计思想 5.知识好传递,思想难传播 6.利用配置文件解耦{反射;动态代理;泛型;设计模式}
    查看全部
  • Mybatis特点: ---------------1.SQL语句与代码分离 -------------------------优点:便于管理和维护 -------------------------缺点:不便于调试,需要借助日志工具获得信息 ----------------2.用标签控制动态SQL的拼接 -------------------------优点:用标签代替编写逻辑代码 -------------------------缺点: 拼接复杂SQL语句时,没有代码灵活,比较复杂 ---------------3. 结果集与Java对象的自动映射 -------------------------优点:保证名称相同即可自动映射 -------------------------缺点:对开发人员所写的SQL依赖性很强 --------------4. 编写原生SQL ------------------------优点:接近JDBC,很灵活 ------------------------劣势:对SQL语句依赖程序很高
    查看全部
  • jdbc批量新增语句
    查看全部
    0 采集 收起 来源:实现批量新增

    2016-06-24

  • 代购问题--- 注册拦截器 <plugins> <plugin interceptor="com.imooc.interceptor.PageInterceptor"> <property name="test" value="abc"></property> </plugin> </plugins> public void setProperties(Properties properties) { //该方法中的test是property 的name值 this.test = properties.getProperty("test"); }
    查看全部
  • 通过boundSql.getParameterObject()得到的对象需要强转为Map<?,?>类型 Map<?,?> parameter = (Map<?,?>)boundSql.getParameterObject(); Page page = (Page)parameter.get("page"); if(rs.next()) { page.setTotalNumber(rs.getInt(1)); } // 改造后带分页查询的SQL语句 String pageSql = sql + " limit " + page.getDbIndex() + "," + page.getDbNumber(); metaObject.setValue("delegate.boundSql.sql", pageSql);
    查看全部
  • mybatis的拦截器实现分页(动态代理) 拦截sql语句来实现分页 1.拦截什么样的对象(1.RoutingStatementHandler;2.以page作为参数传入;page对象) 2.拦截对象什么行为 3.什么时候拦截 (在prepareStatement的时候拦截) (源码) 1.RoutingStatementHandler 2.通过RoutingStatementHandler对象的属性delegate找到statement实现类BaseStatementHandler 3.通过BaseStatementHandler类的反射得到里面的属性对象(proptect)的MappedStatement对象 4.通过MappedStatement的属性getID得到配置文件sql语句的ID 5.通过BaseStatementHandler属性的到原始sql语句 6.拼接分页sql( 1.需要查询总数的sql 2.通过拦截Connection对象得到PrepareStatement对象 3.得到对应的参数 4.把参数设到prepareStatement对象里的?(该?号在配置文件以#{}形式存在,mybatis会把它转为?号) 5.执行该sql语句 6.得到总数 ) 7.把属性值为新的sql
    查看全部
  • mybatis的拦截器实现分页(动态代理) 拦截sql语句来实现分页 1.拦截什么样的对象(以page作为参数传入;page对象) 2.拦截对象什么行为 3.什么时候拦截 (在prepareStatement的时候拦截) (源码) 1.RoutingStatementHandler 2.通过RoutingStatementHandler对象的属性delegate找到statement实现类BaseStatementHandler 3.通过BaseStatementHandler类的反射得到对象的MappedStatement对象 4.通过MappedStatement的属性getID得到配置文件sql语句的ID 5.通过BaseStatementHandler属性的到原始sql语句 6.拼接分页sql( 1.需要查询总数的sql 2.通过拦截Connection对象得到PrepareStatement对象 3.得到对应的参数 4.把参数设到prepareStatement对象里的?(该?号在配置文件以#{}形式存在,mybatis会把它转为?号) 5.执行噶sql语句 6.得到总数 ) 7.把属性值为新的sql
    查看全部
  • 1.先定义一个接口代替案例中的IMessage接口,定义一个接口方法,参数类型返回值类型随意,注意实现invoke()方法的时候遵循定义的返回值类型,然后创建相应类型的对象返回即可。 2.然后再创建一个类实现了InvocationHandler接口的,然后再实现invoke()方法,通过反射打印出被代理的接口名以及方法名即可 3.创建一个sqlSession类代替mybatis 中的SqlSession接口。在这里也写一个getMapper()方法,这个方法主要做两件事,①根据接口与代理类创建一个代理实例;②根据泛型,将代理实例强制转换 4.然后在main方法中创建一个sqlsession对象,去调用getMapper方法,传递一个自定义接口的class做参数,再用自定义接口类型承接这个值,然后在用这个对象去调用接口的方法。
    查看全部

举报

0/150
提交
取消
课程须知
本课程的前导课程为《通过自动回复机器人学 Mybatis ---基础版》, 课程中案例的关联性极强,所以学习本课程唯一的条件就是学习过《通过自动回复机器人学 Mybatis ---基础版》
老师告诉你能学到什么?
1、 Mybatis 的接口式编程 2、实现分页查询 3、通过拦截器实现分页共通来了解 Mybatis 的拦截器 4、通过如何用数组做参数来了解 Mybatis 对类型的处理 5、 Mybatis 如何实现 jdbc 的 addBatch ,即批量插入

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!