(八)mybatis之映射器

映射器

映射器是由Java接口和XML文件(或注解)共同组成的,作用如下:

①   定义参数类型。

②   描述缓存。

③   描述SQL语句。

④   定义查询结果和POJO的映射关系。

以下用两种方式进行Mapper的实现。

1、 XML文件配置方式实现Mapper

第一步:给出Java接口。

package com.mapper;

import com.entity.User;

public interface UserMapper(){

         public User getUser(int id);

}

第二步:给出一个关于User的映射文件。

<?xml version=”1.0” encoding=”UTF-8” ?>

<!DOCTYPE mapper

         PUBLIC “-//mybatis.org//DTD Mapper 3.0//EN”

         http://mybatis.org/dtd/mybatis-3-mapper.dtd>

<mapper namespace=”com.mapper.UserMapper”>

<!—此处是说明,映射所对应的Java类是哪个 -->

         <select id=”getUser” parameterType=”int” resultType=”user”>

<!—此处的id属性值需要与上一步的UserMapper的方法名一致 -->

<!—parameterType表示传进值的类型,resultType表示输出值的类型,此处的user是之前在mybatis-config.xml文件中已经说明过的了,是User类的别名-->

                   select id, username from user_info where id=#{id}

<!-- 此处的id属性的值需要与POJO中的属性名称对应-->

         </select>

</mapper>

第三步,使用Mybatis进行查询。

//获取映射器Mapper

UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

User user = userMapper.getUser(1);

System.out.println(user.getUserName());

2、  Java注解方式实现Mapper

使用Java注解方式实现映射关系并不难,只需要在接口中使用Java注解并注入SQL即可。但是如果需要的SQL比较复杂,用注解的方式就会比较吃力(因为SQL需要整合各种注解)。

package com.mapper;

import org.apache.ibatis.annotations.Select;

import com.entity.User;

public interface UserMapper2{

         @Select(value=”select id, username from user_info where id=#{id}”)

         public User getUser(int id);

}

原文地址:https://www.cnblogs.com/NYfor2018/p/9102386.html

时间: 2024-08-30 12:43:26

(八)mybatis之映射器的相关文章

(十一)mybatis之映射器(select)

映射器 映射器的主要元素有八种: 元素名称 描述 select 查询语句,可自定义参数 insert 插入语句,执行后返回插入的条数 update 更新语句,执行后返回更新的条数 delete 删除语句,执行后返回删除的条数 sql 定义一部分的sql,被各处引用 resultMap 描述从数据库中得到的结果,提供映射规则 cache 给定命名空间的缓存配置 cache-ref 其他命名空间缓存配置的引用   select元素 ①   简单地应用查询的select元素: <select id =

MyBatis XML 映射器 select、insert update 和 delete、参数

MyBatis 的真正强大在于它的语句映射,这是它的魔力所在. 如果跟JDBC 代码进行对比,省掉了将近 95% 的代码. 1 selectCREATE TABLE person (id int(11) NOT NULL AUTO_INCREMENT,username varchar(100) DEFAULT NULL,password varchar(100) DEFAULT NULL,full_name varchar(100) DEFAULT NULL,first_name varchar

[转] MyBatis的XxxMapper.xml 映射器的详解(六)

上一章简单介绍了MyBatis的核心配置文件 SqlMapConfig.xml(五),如果没有看过,请观看上一章. 一 . XxxMapper.xml 映射器的使用在MyBatis 中,将Dao层的接口与对应的Mapper.xml 配置文件进行组合使用,而不是以前的接口实现类处理. 这里着重讲解一下,这个配置文件的使用. 将XxxMapper.xml 放置在与接口XxxMapper.java 同级的目录下. 一.一 Schema约束<!DOCTYPE mapper PUBLIC "-//m

Java Persistence with MyBatis 3(中文版) 第四章 使用注解配置SQL映射器

在上一章,我们看到了我们是怎样在映射器Mapper XML配置文件中配置映射语句的.MyBatis也支持使用注解来配置映射语句.当我们使用基于注解的映射器接口时,我们不再需要在XML配置文件中配置了.如果你愿意,你也可以同时使用基于XML和基于注解的映射语句. 本章将涵盖以下话题: l 在映射器Mapper接口上使用注解 l 映射语句 @Insert,@Update,@Delete,@SeelctStatements l 结果映射 一对一映射 一对多映射 l 动态SQL @SelectProvi

Java Persistence with MyBatis 3(中文版) 第三章 使用XML配置SQL映射器

关系型数据库和SQL是经受时间考验和验证的数据存储机制.和其他的ORM 框架如Hibernate不同,MyBatis鼓励开发者可以直接使用数据库,而不是将其对开发者隐藏,因为这样可以充分发挥数据库服务器所提供的SQL语句的巨大威力.与此同时,MyBaits消除了书写大量冗余代码的痛苦,它使使用SQL更容易. 在代码里直接嵌套SQL语句是很差的编码实践,并且维护起来困难.MyBaits使用了映射器配置文件或注解来配置SQL语句.在本章中,我们会看到具体怎样使用映射器配置文件来配置映射SQL语句.

深入浅出MyBatis:「映射器」全了解

本篇文章是「深入浅出MyBatis:技术原理与实践」书籍的总结笔记. 上一篇总结了MyBatis的配置,详细说明了各个配置项,其中提到了映射器,它是MyBatis最强大的工具,也是使用最多的工具. 通过映射器,可以很容易的进行数据的增删改查操作,我们抽象下进行这些操作的关键点:传递查询参数.组装各种场景下的查询条件.关联查询.将查询结果映射为Java Bean对象或集合等.另外,可以通过延迟加载.缓存提高数据查询的性能. 本篇就按照这个思路进行总结,首先列举下映射器的主要元素,每个元素提供的配置

MyBatis配置文件(九)--mappers映射器

映射器是MyBatis中最复杂.最核心的组件,本文先介绍映射器的引入方法,其他的在我日后会再做分析和总结. 之前的文章中有提到过,映射器是由一个接口和一个XML配置文件组成,XML文件中需要定义一个命名空间namespace,它的值就是接口对应的全路径. 如我定义一个根据ID查询产品的映射器,需要以下两步: 第一步:创建一个接口,定义查询方法 1 public interface ProductMapper { 2 //查询接口 3 public Product selectById(Strin

MyBatis数据库连接的基本使用-补充Mapper映射器

补充 Mapper映射器的使用: Mapper映射器,google添加.Mapper映射器是将mapper.xml中配置的sql id,parameterType和resultMap按照规则一一映射到接口中,后续MyBatis创建完接口实例后,可以直接调用对象中的方法操作数据库,其底层还是调用了sqlSession的 API (1)什么是Mapper映射器 符合映射文件要求的一个接口:Mybatis会生成符合该接口要求的对象 (2)接口要求 a 方法名要与mapper.xml配置文件中sql的i

Spring集成MyBatis的使用-使用Mapper映射器

Spring集成MyBatis使用 前面复习MyBatis时,发现在测试时,需要手动创建sqlSessionFactory,Spring将帮忙自动创建sqlSessionFactory,并且将自动扫描Mapper映射器 (1)集成步骤 step1 导包: spring-webmvc, mybatis, mybatis-spring, dbcp, ojdbc, spring-jdbc, junit, mysql相关等 <dependencies> <!--导入junit测试包-->