MyBatis整合Spring的实现(10)

MyBatis的SQL解析也是一个非常重要的一部分。对应的类XMLMapperBuilder,在下面我们只是列出相应的方法,具体分析在后面文章介绍:

具体代码:

public void parse() {
    if (!configuration.isResourceLoaded(resource)) {
      configurationElement(parser.evalNode("/mapper"));
      configuration.addLoadedResource(resource);
      bindMapperForNamespace();
    }
    parsePendingResultMaps();
    parsePendingChacheRefs();
    parsePendingStatements();
}
private void configurationElement(XNode context) {
    try {
      String namespace = context.getStringAttribute("namespace");
      if (namespace.equals("")) {
      throw new BuilderException("Mapper‘s namespace cannot be empty");
      }
      builderAssistant.setCurrentNamespace(namespace);
      cacheRefElement(context.evalNode("cache-ref"));
      cacheElement(context.evalNode("cache"));
      parameterMapElement(context.evalNodes("/mapper/parameterMap"));
      resultMapElements(context.evalNodes("/mapper/resultMap"));
      sqlElement(context.evalNodes("/mapper/sql"));
      buildStatementFromContext(context.evalNodes("select|insert|update|delete"));
    } catch (Exception e) {
      throw new BuilderException("Error parsing Mapper XML. Cause: " + e, e);
    }
}

代码就分解到这个程度,下面的文章对代码中每个方法进行分析。

时间: 2024-08-28 07:37:05

MyBatis整合Spring的实现(10)的相关文章

MyBatis整合Spring编码

MyBatis整合Spring编码 创建spring包,编写spring-Dao.xml文件 Spring-Dao.xml <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan

MyBatis整合Spring的实现(7)

MyBatis整合Spring的实现(6)中分析了方法propertiesElement,下面继续往下分析代码: 1 方法typeAliasesElement private void typeAliasesElement(XNode parent) {     if (parent != null) {       for (XNode child : parent.getChildren()) {         if ("package".equals(child.getName

MyBatis整合Spring的实现(3)

分析 MyBatis整合Spring的实现(2)中属性可以知道,XPathParser类在XMLConfigBuilder中充当了非常重要的角色,下面就来分析XPathParser的作用. 1 属性 1.1 XPathParser属性: /** 整个XML文档 */ private Document document; /** 是否已验证,true:是,false:否 */ private boolean validation; /** 用于解析实体的基本接口 */ private Entity

MyBatis整合Spring的实现(9)

前面章节已经把MyBatis的全局配置文件的解析分析完成,下面继续对整合类SqlSeesionFactoryBean,代码进行分析. if (this.transactionFactory == null) {     this.transactionFactory = new SpringManagedTransactionFactory(); } Environment environment = new Environment(this.environment, this.transact

MyBatis整合Spring的实现(4)

分析 MyBatis整合Spring的实现(1)中代码实现的4.2.4.3可以知道,这2个都是去生成别名管理器TypeAliasRegistry类,下面就来分析代码. 1 属性 TypeAliasRegistry类中有个Map,key为字符串,value为对应的类的Class.默认还有很多,需要自己去看源代码. 2 别名管理器,Spring配置属性------包名 if (hasLength(this.typeAliasesPackage)) {     String[] typeAliasPa

MyBatis整合Spring的实现(8)

?1 方法settingsElement private void settingsElement(XNode context) throws Exception {     if (context != null) {       Properties props = context.getChildrenAsProperties();       // Check that all settings are known to the configuration class       Met

160330、Mybatis整合Spring

转自csdn文章 http://haohaoxuexi.iteye.com/blog/1843309 Mybatis整合Spring 根据官方的说法,在ibatis3,也就是Mybatis3问世之前,Spring3的开发工作就已经完成了,所以Spring3中还是没有对Mybatis3的支持.因此由Mybatis社区自己开发了一个Mybatis-Spring用来满足Mybatis用户整合Spring的需求.下面就将通过Mybatis-Spring来整合Mybatis跟Spring的用法做一个简单的

mybatis整合spring获取配置文件信息出错

描述:mybatis整合spring加载jdbc.properties文件,然后使用里面配置的值来 配置数据源,后来发现用户变成了admin- jdbc.properties的配置: 加载配置: 报错信息: Cannot create PoolableConnectionFactory (Access denied for user 'Administrator'@'localhost' (using password: NO)) 报错信息里面显示说数据库的用户 'Administrator'@

不需要怎么修改配置的Mybatis整合Spring要点

首先对于Mybatis的主配置文件,只需要修改一处地方,将事务交给Spring管理,其它地方可以原封不动. <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"

Mybatis整合Spring 【转】

根据官方的说法,在ibatis3,也就是Mybatis3问世之前,Spring3的开发工作就已经完成了,所以Spring3中还是没有对Mybatis3的支持.因此由Mybatis社区自己开发了一个Mybatis-Spring用来满足Mybatis用户整合Spring的需求.下面就将通过Mybatis-Spring来整合Mybatis跟Spring的用法做一个简单的介绍. MapperFactoryBean 首先,我们需要从Mybatis官网上下载Mybatis-Spring的jar包添加到我们项