在项目中,使用的是mybatis3.0.5,但没有采用其提供的DAO层接口映射的策略,而且在进行多种属性联合查找时,需要底层提供通用的解决方案,所以需要mybatis直接执行sql语句,各个daoImpl均可调用,减少了在每个mybatis文件中配置符合当前对象的select查询。。
(在mybatis中,需要通过传递对象,在select中判断对象属性是否为空进行where语句的拼凑,对后期的维护工作带来不小的考验,所以采用直接执行sql策略)
先说一说配置时,遇到的异常:
<select id="findRecords" parameterType="String" resultMap="orderTypeResultMap"> ${sql} </select>
这样配置时,会出现:there no getter sql in java.lang.String 的异常
所以考虑:用一个适配器,将sql作为属性加入其中
首先:
<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; } }
最后:
<select id="findRecords" parameterType="SQLAdapter" resultMap="orderTypeResultMap"> ${sql} </select>
注意,不要忘记在调用该select方法时,用new SqlAdapter("自己写的sql语句")作为参数哦。。。
搞定。。
想更深入了解,请浏览 mybatis/ibatis直接执行sql语句后续
相关推荐
首先,SQLMapper是MyBatis的核心组成部分,它定义了与数据库交互的SQL语句和映射规则。通过自动生成这些映射文件,开发者可以避免手动编写繁琐的SQL代码,同时保持代码的整洁和可维护性。 1. **配置Generator**: ...
根据MyBatis或iBatis的SQLMapper文件解析生成数据库表,通常是指通过解析MyBatis或iBatis的SQLMapper文件中的SQL语句,然后根据这些SQL语句来生成对应的数据库表结构。这样的需求可能源于需要将已有的SQLMapper文件...
它可能首先寻找`<insert>`、`<update>`、`<select>`和`<delete>`等标签,这些是MyBatis/iBatis中定义SQL语句的地方。接着,它会分析`<resultMap>`和`<parameterMap>`来获取字段信息和参数映射,以确定数据库表的列名...
XML配置文件是MyBatis的核心,它包含了Mapper接口的方法与对应的SQL语句的映射。通过这个文件,MyBatis能够理解如何执行数据库操作。 7. **优势与价值** - 提升开发速度:自动化的代码生成减少了手动编写代码的...
在iBatis中,同样可以通过配置日志系统,如log4j,查看执行的SQL语句,这对于调试和性能优化非常有用。 **Hibernate** Hibernate 是一个全面的ORM框架,提供了更强大的对象关系映射功能。它不仅处理SQL的生成,还...
在默认情况下,MyBatis并不会直接打印出执行的SQL语句,因此我们需要开启日志功能以获取这些信息。 1. **启用MyBatis日志** MyBatis支持多种日志实现,如Log4j、Logback和Java内置的日志API。在SpringBoot项目中,...
在数据库开发中,持久层框架是至关重要的,它负责处理数据库的CRUD(创建、读取、更新、删除)操作,以及SQL语句的动态构建和执行。iBatis以其灵活的SQL映射和对XML或注解的支持而受到欢迎,但随着时间的推移,...
总结起来,myBatis和iBatis都是强大的Java持久层框架,它们通过将SQL语句与Java代码分离,提高了开发效率和代码的可维护性。myBatis作为iBatis的升级版,提供了更多的功能和便利,而iBatis Auto Generator这样的工具...
在使用iBatis(现为MyBatis)作为持久层框架进行开发时,有时我们需要调试SQL语句,以便查看执行的SQL、优化性能或者解决查询问题。本文将详细讲解如何在iBatis日志信息中打印SQL语句,以便更好地理解和优化数据库...
iBatis(现在通常被称为MyBatis)提供了一套强大的动态SQL功能,可以帮助开发者灵活地构建SQL语句,极大地提高了开发效率和代码的可维护性。 #### 一、基本概念 iBatis框架中的动态SQL主要通过XML映射文件来实现,...
在开发过程中,配置文件的正确设置至关重要,因为它定义了数据库连接、映射文件的位置以及SQL语句的执行方式。本文将深入探讨如何在MyBatis和iBatis的配置文件中启用自动补全功能,以提高开发效率。 首先,我们来看...
把 mybatis 输出的sql日志还原成完整的sql语句。 将日志输出的sql语句中的问号 ? 替换成真正的参数值。 通过 "Tools -> MyBatis Log Plugin" 菜单或快捷键 "Ctrl+Shift+Alt+O" 启用。 点击窗口左边的 "Filter" ...
- **动态SQL支持**:myBatis增强了动态SQL的支持能力,使得开发者可以更容易地构建复杂的查询语句。 - **对象关系映射(ORM)**:ibatis更多关注SQL查询的映射,而myBatis在此基础上加强了对象关系映射的能力,更好...
生成的Mapper接口可以直接与MyBatis的SqlSession进行交互,执行数据库操作。 XML映射文件包含了具体的SQL语句,MBG会根据表结构生成对应的SELECT、INSERT、UPDATE和DELETE语句。这些映射文件会定义字段到数据库列的...
XML配置文件中包含了SQL语句、参数映射、结果映射等信息,而注解方式则更简洁,直接在Mapper接口的方法上标注SQL语句和相关属性。 4. Mapper接口与Mapper XML文件: Mapper接口是业务逻辑层调用数据库的桥梁,其中...
本文将详细探讨如何使用P6Spy来打印iBatis(现为MyBatis)执行的SQL语句,以便进行性能分析和调试。 首先,我们需要了解P6Spy的工作原理。P6Spy通过替换JDBC驱动,将自己插入到应用程序和数据库之间,监听所有的SQL...
iBatis,即现在的MyBatis前身,最初由Clinton Begin创建,是一个SQL映射框架,它将SQL语句写在XML配置文件中,通过映射关系,使得Java对象可以直接与数据库进行交互。 2. 代码生成工具的重要性: 代码生成工具...
Mybatis拦截器(Interceptor)是一种插件机制,它允许我们在Mybatis执行SQL语句之前或之后进行自定义操作,比如统计SQL执行时间、添加日志等。拦截器基于Java的动态代理实现,可以拦截Mapper接口方法的调用。 接...
Mybatis 是一个流行的Java持久层框架,它简化了数据库操作,允许开发者将SQL语句直接映射到Java方法。在开发过程中,为了调试和优化SQL性能,常常需要查看执行的SQL语句及其参数。Mybatis 提供了一种日志机制,能够...
首先,iBatis(现为MyBatis)是一个轻量级的ORM(对象关系映射)框架,它允许开发者将SQL语句直接写在配置文件中,将数据库操作与业务逻辑分离。Spring框架则提供了一个强大的依赖注入(DI)机制,能够管理包括...