博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mybatis resultMap使用
阅读量:6292 次
发布时间:2019-06-22

本文共 2399 字,大约阅读时间需要 7 分钟。

hot3.png

    今天在项目中用了mybatis的resultMap。以前用的时候都是一些简单的查询,修改,分页。这次涉及到了POJO对象之间的一对多和多对一的关系映射。

    mybatis有几种使用方式, 我喜欢用mapper的方式,然后用spring来管理mybatis.

    开发工具是Eclipse jee, mybatis版本是3.0.5, mybatis-sprint-1.0.1

   工程文件目录

mybatis-config.xml 是mybatis的配置文件:

 

applicationContext.xml:

 

 

<bean id="clientMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">

    <property name="mapperInterface" value="com.exam.persistence.mapper.ClientMapper" />

    <property name="sqlSessionFactory" ref="sqlSessionFactory" />

</bean>

配置文件就是这些了。主要的东西在下面:

业务逻辑涉及到三张表: Client, Subscriber, Account. 其中Client表和Subscriber表是多对一的关系. Client表和Account是一对多的关系。

 在com.example.persistence.mapper目录下,需要创建两个文件分别是:ClientMapper.java 和 ClientMapper.xml

对象映射关系主要在ClientMapper.xml中定义:

 

这个xml文件定义了一个resultMap id="clients". clients里面包含了一个assoction(多对一)和一个collection(一对多). 这两个分别对应了两个select id.

 ClientMapper.java是一个interface:

import java.util.List;import com.exam.entity.Clients;public interface ClientMapper {  public List
getClientByID(String external_id);}

其中函数名"getClientByID"应该和ClientMapper.xml中的select id的值相同。

 在com.exam.entity目录下面需要定义Clients, Accounts, Subscription 三个POJO类。就不在这里写POJO类了。

这样我们在service逻辑中就可以使用ClientMapper.

 

public class ClientServiceImpl implements ClientService {	private ClientMapper clientMapper;	public ClientMapper getClientMapper() {		return deviceMapper;	}	public void setClientMapper(ClientMapper clientMapper) {		this.clientMapper = clientMapper;	}         @Override	public List
getClientByID(String external_id) { return getClientMapper().getClientByID(external_id); }}我们需要在applicationContext中把clientMapper注入到这个server类中就ok了。
先写到这里。

转载于:https://my.oschina.net/u/145002/blog/29845

你可能感兴趣的文章
python 学习笔记 12 -- 写一个脚本获取城市天气信息
查看>>
Error code:1728 Cannot load from mysql.proc. The table is probably corrupted
查看>>
soapUI学习笔记--用例字段参数化
查看>>
一些通用性的haproxy调优tips
查看>>
Java中泛型的各种使用
查看>>
这些git技能够你用一年了
查看>>
Android开发学习之路--Notification之初体验
查看>>
用友ERP T6技术解析(六) 库龄分析
查看>>
uva 10401 Injured Queen Problem(dp)
查看>>
[LeetCode] Kth Smallest Element in a BST
查看>>
rxlib簡介
查看>>
PEAR安装、管理及使用
查看>>
iOS 6.1完美越狱教程
查看>>
Android Studio无法打开解决方法
查看>>
消息头字段
查看>>
ArrayList和数组间的相互转换
查看>>
微信公众平台——自定义菜单
查看>>
[转]SQL truncate 、delete与drop区别
查看>>
软件的价值
查看>>
一种用户体验-显示对话框时灰化你的主窗体
查看>>