映射器

映射器是由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);

}

最新文章

  1. bzoj1036--树链剖分
  2. wordpress 自定义登录表单
  3. c++ web服务器
  4. 纯CSS实现的右侧底部简洁悬浮效果
  5. Qt Creator快捷键
  6. (转)php中__autoload()方法详解
  7. CPrimer Plus第12章 存储类、链接和内存管理随笔
  8. c++输入密码以星号代替
  9. 设计模式 Template Method模式 显示程序猿的一天
  10. 《ECMAScript标准入门》第二版读书笔记
  11. python3获取网页天气预报信息并打印
  12. ASP.NET实现网页版小优盘
  13. http/https与websocket的ws/wss的关系以及通过Nginx的配置
  14. .net core + headless chrome实现动态网页爬虫
  15. eclipse git 删除内容
  16. 【转】vs2010打开qt的.pro文件时错误解决办法
  17. 第二百七十八节,MySQL数据库-表内容操作
  18. 解决oracle11g无法导出空表问题
  19. 0055 &lt;mvc:default-servlet-handler /&gt;不能同时访问静态资源和动态资源的问题
  20. 【BZOJ 1407】[Noi2002]Savage ExGCD

热门文章

  1. unity常用插件
  2. [Xcode 实际操作]八、网络与多线程-(25)实现ShareSdk的社会化分享功能
  3. Response.Redirect 产生的“正在中止线程”错误
  4. Devc++贪吃蛇
  5. Tomcat日志文件的输出在Linux和Windows下的差异
  6. JSP &amp;&amp; Servlet | 上传图片到数据库
  7. laravel-admin 配置富文本编辑器流程
  8. LIS的简单应用:UVA-437
  9. python入门之实例-商品选择
  10. 539 Minimum Time Difference 最小时间差