`
xingkaistart
  • 浏览: 40143 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

根据sqlId获取Ibatis配置文件中的SQL

阅读更多
import com.ibatis.sqlmap.engine.impl.SqlMapClientImpl;
import com.ibatis.sqlmap.engine.mapping.sql.Sql;
import com.ibatis.sqlmap.engine.scope.SessionScope;
import com.ibatis.sqlmap.engine.scope.StatementScope;
import com.ibatis.sqlmap.engine.mapping.statement.MappedStatement;
	/**
	 * 获取SQL
	 * ibatais根据sqlMap的Id获取sql语句
	 * @param sqlId 是xml文件配置的ID
	 * @return sql语句  以“$”注入的会自动转换,“#”不会
	 */
	public static String getSql(SqlMapClientImpl sqlclientImpl,String sqlId,Object params){
		
		String sqlStr = "";
		/**获取隐身对象*/
		MappedStatement stmt = sqlclientImpl.getMappedStatement(sqlId); 
		Sql sql = stmt.getSql();
		/**获取规则*/
		SessionScope sessionScope = new SessionScope();   
		sessionScope.incrementRequestStackDepth();   
		StatementScope statementScope = new StatementScope(sessionScope);   
		stmt.initRequest(statementScope);   
		/**获取sql映射对象*/
		sqlStr = sql.getSql(statementScope, params);
		
		log.debug("sqlMap:"+sqlId);
		log.debug("sql:"+sqlStr);
		
		return sqlStr;
	}



以上便是获取sql语句的方法。
也许有些地方看不明了,在这里增加一点点解释。
传参:
      SqlMapClientImpl 就是指的我们平时使用的 SqlMapClient 当然在传这个参数需要强制类型转换 如: SqlMapClientImpl temp = (SqlMapClientImpl)sqlMapClient;
      String sqlId 指的 就是 我Ibatais.sqlMap.xml中定义的SQL的Id
     Object params 这个参数指的是sqlMap.xml中 如<insert parameterClass="params">..</insert>的parameterClass传入的对象,如果没有可以为null。





分享到:
评论

相关推荐

    ibatis 配置文件详解

    通过上述解析,我们可以看出ibatis配置文件在ibatis框架中的核心地位,它不仅定义了数据源和事务管理策略,还指定了SQL映射文件的位置,使得ibatis能够根据配置正确地执行SQL语句,完成数据库操作。

    ibatis用xml配置文件配置使用

    通过上述步骤,你可以在iBATIS中使用XML配置文件进行SQL操作。对于复杂场景,如多表联查、分页、存储过程等,你可以继续深入学习XML配置文件的高级用法,例如使用`&lt;association&gt;`, `&lt;collection&gt;`处理嵌套结果,使用...

    ibatis配置文件信息

    ### ibatis配置文件信息 #### 一、简介 在Java开发领域中,ibatis(现称为MyBatis)是一款优秀的持久层框架,它通过XML或注解的方式将接口方法与SQL语句绑定起来,实现对象关系映射(ORM)功能。ibatis的主要优势...

    ibatis配置文件模板

    下面我们将详细探讨Ibatis配置文件模板中的关键组成部分,包括`SqlMap.properties`、`SqlMapConfig.xml`以及与JavaBean的映射文件。 1. **SqlMap.properties** 这是Ibatis的属性配置文件,主要用于存放数据库连接...

    mysql数据库自动生成对应的java实体类和ibatis配置文件

    它会根据配置文件中的设置,连接到MySQL数据库,读取表结构,并自动创建对应的Java实体类和iBatis配置文件。 5. **整合到项目**: 将生成的Java文件和XML文件引入到你的项目中,然后就可以在代码中直接使用这些实体...

    常用ibatis配置

    例如,使用like关键字配合SQL中的通配符“%”,可以在“name”字段上执行模糊匹配。在文档中,可以看到一个模糊查询的例子,如果name不为空,则SQL语句会增加一个name LIKE '%输入值%'的条件。 5. date时间段:在很...

    ibatis 注解配置文件

    在传统的XML配置文件中,Ibatis允许我们定义SQL语句、参数映射以及结果集映射。然而,随着Java注解的普及,Ibatis也支持使用注解来进行配置,使得代码更加简洁易读。 1. **@Select**: 这个注解用于标记一个方法,该...

    ibatis 中sqlMap配置

    命名空间是iBatis配置中的一个重要概念,它用于区分不同的SQL映射文件。例如,`&lt;sqlMap namespace="Account"&gt;`,在这个命名空间内定义的所有SQL语句和其他元素都属于Account模块。如果要在其他地方引用这个命名空间...

    sqlserver Ibatis XML自动生成工具

    总结来说,SQLServer Ibatis XML自动生成工具是Java开发中的得力助手,尤其适合于处理Ibatis的XML映射文件生成。它通过自动化的方式,帮助开发者快速创建和维护数据库操作的映射文件,从而提高开发速度,降低错误率...

    IBatis.net 配置各种数据库

    其主要组成部分包括:SqlMapConfig.xml(全局配置文件)、Mapper.xml(SQL映射文件)以及对应的.NET接口或实体类。 配置数据库连接: 在使用IBatis.net时,首要任务是配置数据库连接。全局配置文件SqlMapConfig.xml...

    springMVC整合ibatis 配置详细

    5. **配置Mapper扫描**:在Spring配置文件中,扫描Mapper接口,使其能够被Spring管理。 ```xml ``` 6. **Service层实现**:在Service层中,注入Mapper接口,通过接口方法调用SQL。 7. **Controller层...

    ibatis中iterate的例子

    举个例子,假设我们有一个用户ID的列表,我们需要查询这些ID对应的所有用户信息,可以这样配置iBatis的映射文件: ```xml &lt;select id="selectUsersByIds" parameterType="java.util.List" resultType=...

    ibatis的sql-map dtd

    在Ibatis中,`sql-map`和`sql-map-config`是两个重要的XML配置文件,它们使用DTD(Document Type Definition)来定义其结构和规则。 DTD是XML文档类型定义,它定义了XML文档的合法构建块,包括元素、属性、实体等,...

    ibatis总结 ibatis ibatis ibatis ibatis

    - `applicationContext.xml`是Spring的主配置文件,它定义了Spring容器中的bean,包括对Struts、Ibatis等其他框架的配置,实现各组件间的依赖注入。 - `codelist.xml`则可能包含了全局共享的bean,如`...

    Ibatis的应用和配置

    一、Ibatis配置文件 Ibatis的主要配置文件是`mybatis-config.xml`,它是整个系统的全局配置文件。这个文件中包含了数据源、事务管理器、环境配置、Mappers等重要元素的定义。例如: ```xml &lt;environment id=...

    ibatis的dynamicSQL中,关于prepend的使用

    通过使用XML配置文件来定义SQL查询语句,并结合Java对象映射关系,ibatis提供了一种灵活的方式来处理数据库操作。其中,动态SQL是ibatis的一个非常强大的特性,允许开发者根据不同的条件构建出复杂的SQL查询语句。 ...

    ibatis相关配置

    在全局配置文件中,你可以选择JDBC或MANAGED作为事务管理器。JDBC事务管理需要手动提交或回滚,而MANAGED则由容器(如Spring)管理。 6. **参数绑定和结果映射** Ibatis支持多种参数绑定方式,如#{param}(预编译...

    ibatis dtd文件

    这个文件则是Ibatis配置文件的DTD,它规定了如何配置数据源、事务管理器、SqlSessionFactory等核心组件。配置文件中,你可以定义`&lt;transactionManager&gt;`来设置事务管理策略,`&lt;dataSource&gt;`来指定数据源,以及`...

Global site tag (gtag.js) - Google Analytics