一、为实体类定义别名,简化sql映射xml文件中的引用
之前,我们在sql映射xml文件中的引用实体类时,需要写上实体类的全类名(包名+类名),如下:
<!-- 创建用户(Create) --> <insert id="addUser" parameterType="me.gacl.domain.User"> insert into users(name,age) values(#{name},#{age}) </insert>
parameterType="me.gacl.domain.User"这里写的实体类User的全类名me.gacl.domain.User,每次都写这么一长串内容挺麻烦的,而我们希望能够简写成下面的形式
<insert id="addUser2" parameterType="_User"> insert into users(name,age) values(#{name},#{age}) </insert>
parameterType="_User"这样写就简单多了,为了达到这种效果,我们需要在conf.xml文件中为实体类="me.gacl.domain.User"定义一个别名为"_User",具体做法如下:
在conf.xml文件中<configuration></configuration>标签中添加如下配置:
<typeAliases> <typeAlias type="me.gacl.domain.User" alias="_User"/> </typeAliases>
这样就可以为me.gacl.domain.User类定义了一个别名为_User,以后_User就代表了me.gacl.domain.User类,这样sql映射xml文件中的凡是需要引用me.gacl.domain.User类的地方都可以使用_User来代替,这就达到了一个简化实体类引用的目的。
除了可以使用<typeAlias type="me.gacl.domain.User" alias="_User"/>这种方式单独为某一个实体类设置别名之外,我们还可以使用如下的方式批量为某个包下的所有实体类设置别名,如下:
<typeAliases> <package name="me.gacl.domain"/> </typeAliases>
<mapper namespace="me.gacl.mapping.orderMapper"> 7 8 <!-- 9 根据id查询得到一个order对象,使用这个查询是查询不到我们想要的结果的, 10 这主要是因为实体类的属性名和数据库的字段名对应不上的原因,因此无法查询出对应的记录 11 --> 12 <select id="getOrderById" parameterType="int" 13 resultType="me.gacl.domain.Order"> 14 select * from orders where order_id=#{id} 15 </select> 16 17 <!-- 18 根据id查询得到一个order对象,使用这个查询是可以正常查询到我们想要的结果的, 19 这是因为我们将查询的字段名都起一个和实体类属性名相同的别名,这样实体类的属性名和查询结果中的字段名就可以一一对应上 20 --> 21 <select id="selectOrder" parameterType="int" 22 resultType="me.gacl.domain.Order"> 23 select order_id id, order_no orderNo,order_price price from orders where order_id=#{id} 24 </select> 25 26 <!-- 27 根据id查询得到一个order对象,使用这个查询是可以正常查询到我们想要的结果的, 28 这是因为我们通过<resultMap>映射实体类属性名和表的字段名一一对应关系 --> 29 <select id="selectOrderResultMap" parameterType="int" resultMap="orderResultMap"> 30 select * from orders where order_id=#{id} 31 </select> 32 <!--通过<resultMap>映射实体类属性名和表的字段名对应关系 --> 33 <resultMap type="me.gacl.domain.Order" id="orderResultMap"> 34 <!-- 用id属性来映射主键字段 --> 35 <id property="id" column="order_id"/> 36 <!-- 用result属性来映射非主键字段 --> 37 <result property="orderNo" column="order_no"/> 38 <result property="price" column="order_price"/> 39 </resultMap> 40 41 </mapper>
相关推荐
Spring、SpringMVC和Mybatis是Java开发中最常用的三大开源框架,它们的整合使用,通常被称为SSM框架。这个框架组合提供了完整的后端服务解决方案,包括依赖注入(DI)、面向切面编程(AOP)、模型-视图-控制器(MVC...
MybatisGenerate是一个强大的工具,主要用于自动化生成Mybatis相关的代码,以提高开发效率并减少手动编写重复性工作的负担。这个工具是基于tk.mybatis框架的,它整合了Mybatis的优秀特性,使得开发者能够更加便捷地...
MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以对配置和原生Map使用简单的XML或注解,将接口和Java的POJOs...
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 ...
MyBatis是一个优秀的Java持久层框架,它支持定制化SQL、存储过程以及高级映射。在深入探讨MyBatis 3.2.6版本的源码之前,我们首先需要了解MyBatis的基本概念和功能。 MyBatis的核心部分主要包括SqlSessionFactory、...
MyBatis学习总结笔记 MyBatis是一个优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML或注解来配置和映射原始...
MyBatis是一个优秀的Java持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的...
项目名称:MyBatis-Cipher - 高效数据脱敏工具 项目简介: MyBatis-Cipher 是一款基于 Java 语言开发的数据库敏感信息加密解密方案,专为 MyBatis 设计。它能够在数据进出数据库(DB)的过程中自动对敏感信息进行...
mybatis-plus最新代码生成器项目源码 :mybatis-plus-generator.zip mybatis-plus最新代码生成器项目源码 :mybatis-plus-generator.zip mybatis-plus最新代码生成器项目源码 :mybatis-plus-generator.zip ...
在MyBatis中,`mybatis-3-config.dtd` 和 `mybatis-3-mapper.dtd` 是两个至关重要的DTD(Document Type Definition)文件,它们定义了MyBatis配置文件和映射文件的结构和规则。 首先,让我们深入了解一下`mybatis-3...
mybatis在持久层框架中还是比较火的,一般项目都是基于ssm。虽然mybatis可以直接在xml中通过SQL语句操作数据库,很是灵活。但正其操作都要通过SQL语句进行,就必须写大量的xml文件,很是麻烦。mybatis-plus就很好的...
这个压缩包文件“mybatisx.zip”包含了多个版本的MybatisX插件,包括MybatisX-1.4.16.zip、MybatisX-1.4.8.zip、MybatisX-1.4.6.zip以及MybatisX-1.1.2.zip。这些版本的差异可能体现在功能增强、性能优化或者修复...
本篇文章将详细介绍两个针对MyBatis框架的IntelliJ IDEA插件——MyBatisCodeHelper-Pro和MybatisX,它们都是为了提升MyBatis开发体验而设计的。 首先,我们来看MyBatisCodeHelper-Pro。这款插件是专为MyBatis开发者...
MyBatis是一款流行的Java持久层框架,它的设计理念是通过简单的XML或注解用于配置和映射原始类型、接口和Java POJOs(Plain Old Java Objects,普通老式Java对象)为数据库中的记录。MyBatis可以与各种数据库交互,...
MyBatis-Flex: 一个优雅的 MyBatis 增强框架。很轻量,MyBatis-Flex 整个框架只依赖 MyBatis,再无其他任何第三方依赖。只增强,MyBatis-Flex 支持 CRUD、分页查询、多表查询、批量操作,但不丢失 MyBatis 原有的...
MyBatis是一款强大的Java持久层框架,它将SQL与Java代码分离,使开发者可以更方便地操作数据库。这篇“MyBatis入门到精通”的学习资料是针对初学者设计的,旨在帮助新手快速掌握MyBatis的基本用法和高级特性。 1. *...
MyBatis入门 MyBatis是一个优秀的持久层框架,使用XML将SQL与程序解耦,便于维护。MyBatis学习简单,执行高效,是JDBC的延伸。MyBatis提供了数据库增删改查的便捷操作,极大提高了开发效率、统一的编码规则、利于...
MyBatis是一个优秀的Java持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的...
MyBatis 官方中文文档 MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置...
"基于Tk MyBatis框架,mybatis 注解方式实现数据的加解密"这个主题就聚焦于如何在MyBatis框架中使用注解来实现在数据库交互过程中对数据的加密与解密。 首先,我们来看Tk MyBatis。Tk MyBatis是MyBatis的增强工具,...