如何使用mybatis直接从Java代码获取查询? [英] How to exequte query directly from java code using mybatis?

查看:446
本文介绍了如何使用mybatis直接从Java代码获取查询?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要在运行时执行由Java代码生成的查询(不是静态方法).我已经知道如何通过使用批注和静态方法或使用xml映射器来构建动态查询,但这不适用于我的情况.

I need to execute query which has been generated by java code in runtime (not static method). I already know how to build dynamic query by using annotation and static method or using xml mapper, but it is not suitable in my case.

有什么方法可以直接从Java代码执行查询?

Is there any way to execute query from java code directly?

推荐答案

Mybatis已经具有此功能,但是您必须按以下方式使用适配器.

Mybatis has already this function, but you must use the adapter as follows.

  1. 创建适配器类;

  1. create an adapter class;

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;
  }
}

  • 创建类SQLAdapter的typeAlias

  • create typeAlias of class SQLAdapter

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

    1. 将选择标记放在每个需要直接执行sql的对象xml中.

    1. put select tag in each object xml where you need to execute the sql directly.

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

  • 像这样调用此选择方法

  • call this select method like

    String _sql = "select * from table where... order by... limit...";
    xxxxx.findRecords(new SQLAdapter(_sql));
    

  • 一切都已完成.您不能再在xml文件中编写复杂的sql语言.祝你好运.

  • Things have been all done. you can no longer writer complex sql language in the xml file. Good Luck.

    这篇关于如何使用mybatis直接从Java代码获取查询?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

  • 查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆