【分表处理】
mybatis-generator-core.jar自动生成的dao里面只有针对原表的操作,若要处理分表,需特殊处理,以下总结二种方案。
1. 使用Map方式
1)xml中的parameterType="map" statementType="STATEMENT"
2)调用方传入的map中包括分表名,xml中使用${分表名},例如:
map.put("subTable","USER_INFO")
xml中使用 INSERT INTO ${subTable}
3)动态SQL使用:
<if test="_parameter.containsKey('userName')">
AND msgType = ${userName})
</if>
2. 使用javaBean方式
1)model层自动生成的javaBean类中需定义分表名属性,例如: subTable,并提供setter,getter方法
2)xml中的parameterType="javaBean类",表名使用${subTable}
3)针对selectByPrimaryKey等入参只有1个Integer或String的简单数据类型,无法通过javaBean传入分表名,此时通过@param绑定变量,例如:
UserInfoMapper.java中
UserInfo selectByPrimaryKey(@Param("subTable") String subTable,@Param("userId") Integer userId);
UserInfoMapper.xml中
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
-->
select
<include refid="Base_Column_List" />
from ${subTable}
where USER_ID = #{userId,jdbcType=INTEGER}
</select>
【特殊符号处理】
由于在xml中不能有>或<等符号,需特殊处理:
方法一
使用转义符替换,例如:
<if test="beginTime != null" >
AND CREATE_TIME >= DATE_FORMAT('${beginTime}','%Y-%m-%d %H:%i:%S')
</if>
附:XML转义字符
< < 小于号
> > 大于号
& & 和
' ’ 单引号
" " 双引号
方法二
使用<![CDATA[ ]]>,例如:
<if test="beginTime != null" >
<![CDATA[ AND CREATE_TIME >= DATE_FORMAT('${beginTime}','%Y-%m-%d %H:%i:%S') ]]>
</if>
相关推荐
【标题】"Spring Boot + MyBatis + Security 登陆查询数据库验证"是一个初学者友好的实战项目,旨在演示如何在Spring Boot应用中整合MyBatis作为持久层框架,并利用Spring Security进行用户身份验证。这个项目涵盖了...
Spring cloud + mybatis 案例; Spring Cloud是基于Spring Boot的一整套实现微服务的框架。他提供了微服务开发所需的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群...
总的来说,这个项目提供了从后端数据库操作到前端页面展示的完整流程,对于想要学习Spring Boot和MyBatis集成开发的人员来说,是一个很好的实战案例。通过阅读源码,理解其架构设计,开发者可以深入学习如何构建...
- **添加依赖**:首先,在 Maven 项目的 `pom.xml` 文件中,添加 Spring Boot 和 Mybatis 的相关依赖,包括 Spring Boot Starter Web、Spring Boot Starter Data JPA(或者 Mybatis Starter)以及 Mybatis 和其所需...
在本项目中,"spring boot + mybatis plus 整合开发 游戏陪玩项目"是一个基于Spring Boot框架和MyBatis Plus扩展的实战应用,旨在构建一个游戏陪玩服务的平台。Spring Boot以其简化Spring应用程序开发的特性,极大地...
这是一个基于Spring Boot、MyBatis、MySQL和Layui技术栈构建的会员信息管理系统源码项目,涵盖了软件开发中的多个重要知识点。以下是关于这些技术及其在项目中的应用的详细解释: 1. **Spring Boot**: Spring Boot...
对于学习者来说,通过分析和理解这个源码,可以深入掌握Spring Boot的实战应用、MyBatis的映射机制、Shiro的安全策略以及Layui的前端布局技巧,同时了解如何将这些技术有效整合到一个实际项目中。
这是一个基于Spring Boot、Mybatis和Vue.js技术栈的实习生招聘网站源码项目,适用于毕业...对于初学者来说,这是一个很好的实战练习,对于资深开发者,也可以从中获取关于Spring Boot、Mybatis和Vue.js集成的宝贵经验。
在讲解基础知识后,书中的实战部分会深入到Spring Boot的实际应用,包括如何创建RESTful API、使用Thymeleaf或Freemarker进行视图渲染、集成MyBatis或JPA进行数据库操作。书中还会涵盖Spring Security,它是Spring...
这是一个基于Spring Boot、MyBatis和Vue.js技术栈构建的在线技能培训与认证系统的源码项目,名为"Sotacy"。下面将详细讲解这个系统的关键技术及其应用。 **1. Spring Boot** Spring Boot是由Pivotal团队提供的开源...
这个基于Spring Boot和MyBatis的电子商城网站项目,是一个综合性的Java Web开发实践案例,它不仅能够帮助初学者打下扎实的基础,还能够为进阶开发者提供实战经验。通过这个项目的开发,开发者将能够获得从后端到前端...
《Spring Boot实战派》源码提供了丰富的学习材料,旨在帮助开发者深入理解并...通过分析《Spring Boot实战派》源码,读者不仅可以了解上述技术点,还能学习到如何在实际项目中应用这些技术,提升开发效率和代码质量。
《Spring MVC与MYBatis企业应用实战》是一本深度探讨如何在实际企业环境中集成和运用Spring MVC和MYBatis两大主流技术的书籍。Spring MVC作为Spring框架的重要组成部分,是Java Web开发中的强大控制器,而MYBatis则...
Spring Boot与MyBatis的整合是Java开发中的常见实践,尤其在快速构建微服务应用时,Spring Boot的便捷性和MyBatis的灵活性结合,能有效提升开发效率。这里我们将深入探讨Spring Boot如何与MyBatis集成,以及在1.3.0...
内容概要:本文详细介绍了基于Spring Boot 2和MyBatis...其他说明:文中不仅展示了具体的代码实现,还分享了许多实际开发中的经验和技巧,如多租户数据隔离、订单状态流转、权限控制等,有助于提高开发者的实战技能。
<groupId>org.mybatis.spring.boot <artifactId>mybatis-spring-boot-starter <version>2.2.4 <groupId>mysql <artifactId>mysql-connector-java <scope>runtime ``` 2. **配置数据库连接**:在`...
本文将重点讲解如何在Spring Boot 1.2.2版本中集成MyBatis,以及这个版本的特点和优势。 一、Spring Boot与MyBatis集成原理 1.1 Spring Boot Starter MyBatis是Spring Boot官方提供的一个启动器,它简化了MyBatis...
使用 Spring Boot 2.5.0 创建项目非常简单,只需要使用 Spring Initializr 工具,然后选择需要的依赖项,例如 Spring Web、Spring Data JPA、MyBatis 等。 依赖项管理 在 Spring Boot 2.5.0 中,依赖项管理是通过 ...
总而言之,《Spring-MYBatis企业应用实战》是一本全面覆盖Spring和MyBatis集成使用的指南,无论你是初学者还是有一定经验的开发者,都能从中获得宝贵的实战经验和理论知识,提升你的Java企业级应用开发能力。
- **添加依赖**:在`pom.xml`文件中,我们需要引入Spring Boot的MyBatis Starter依赖,例如: ```xml <groupId>org.springframework.boot <artifactId>spring-boot-starter-data-jpa <groupId>org....