mybatis/ibatis直接执行sql语句

在项目中,使用的是mybatis3.0.5,但没有采用其提供的DAO层接口映射的策略,并且在进行多种属性联合查找时,须要底层提供通用的解决方案,因此须要mybatis直接执行sql语句,各个daoImpl都可调用,减小了在每一个mybatis文件中配置符合当前对象的select查询。。java

(在mybatis中,须要经过传递对象,在select中判断对象属性是否为空进行where语句的拼凑,对后期的维护工做带来不小的考验,因此采用直接执行sql策略)sql

先说一说配置时,遇到的异常:mybatis

<select id="findRecords" parameterType="String" resultMap="orderTypeResultMap">  
    ${sql}  
</select>

 这样配置时,会出现:there no getter sql in java.lang.String 的异常this

因此考虑:用一个适配器,将sql做为属性加入其中code

首先:对象

<typeAlias alias="sqladapter" type="com.zj.logistics.util.SQLAdapter" />

 其次:接口

public class SQLAdapter {  
    String sql;  
  
    public SQLAdapter(String sql) {  
        this.sql = sql;  
    }  
  
    public String getSql() {  
        return sql;  
    }  
  
    public void setSql(String sql) {  
        this.sql = sql;  
    }  
}

 最后:get

<select id="findRecords" parameterType="SQLAdapter" resultMap="orderTypeResultMap">  
    ${sql}  
</select>

注意,不要忘记在调用该select方法时,用new SqlAdapter("本身写的sql语句")做为参数哦。。。 class

搞定。。配置

相关文章
相关标签/搜索