博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis学习七 单多表关联
阅读量:6222 次
发布时间:2019-06-21

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

hot3.png

个人觉得这个功能其实可以不用的,完全可以用连接操作,自己的逻辑清晰就好了 ###1.创建实体类

public class Ticket {	private Integer ticketId;  	private String ticketAddress;  	private Integer ticketPrice;  	private Integer ticketCId;  	private Customer customer;//使用一个customer来表示顾客      ....public class Customer {	private Integer customerId;	private String customerName;	private Integer customerTel;	private List
tickets;//使用一个List来表示车票 ....

###2.编写xml文件

###3.编写总的xml文件 ``xml

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

<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">

<!-- 这是根标签 -->

<configuration> <!-- 设置别名 --> <typeAliases> <typeAlias alias="Customer" type="com.mucfc.model.Customer"/> <typeAlias alias="Ticket" type="com.mucfc.model.Ticket" /> </typeAliases>

</configuration> ``` ###4.编写测试类 ```java package com.hsm;

import java.io.Reader; import java.util.List;

import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import com.mucfc.model.Customer; import com.mucfc.model.Ticket;

public class Test { private static SqlSessionFactory sqlSessionFactory; private static Reader reader; static { try { reader = Resources.getResourceAsReader("mybatis-config.xml"); sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); } catch (Exception e) { e.printStackTrace(); } }

/* * 一对一关联查询 */public static void selectTicketById(int id) {	SqlSession session = null;	try {		session = sqlSessionFactory.openSession();		Ticket ticket = (Ticket) session.selectOne(				"com.mucfc.model.TicketMapper.selectTicketById", id);		if (ticket == null)			System.out.println("null");		else {			System.out.println(ticket);			System.out.println(ticket.getCustomer());		}	} finally {		session.close();	}}/* * 一对多关联查询 */public static void selectCustomerByName(String string) {	SqlSession session = null;	try {		session = sqlSessionFactory.openSession();		Customer customer = (Customer) session				.selectOne(						"com.mucfc.model.CustomerMapper.selectCustomerByName",						string);		if (customer == null)			System.out.println("null");		else {			System.out.println(customer);			List
tickets = customer.getTickets(); for (Ticket ticket : tickets) { System.out.println(ticket); } } } finally { session.close(); }}public static void main(String[] args) { System.out.println("==============一对一查询,根据车票来查顾客==============="); selectTicketById(1); System.out.println("==============多对一查询,根据顾客来查车票==============="); selectCustomerByName("小王");}

}

 

转载于:https://my.oschina.net/u/2615530/blog/870178

你可能感兴趣的文章
The Definitive Guide To Django 2 学习笔记(五) 第四章 模板 (一)基本模板系统
查看>>
Ubuntu下无法安装sun-java6-jdk的解决办法
查看>>
微网站
查看>>
c++智能指针
查看>>
Serializable java序列化
查看>>
SQL PLUS远程连接
查看>>
SharePoint 2013 InfoPath 无法保存下列表单
查看>>
Ini操作类
查看>>
bbc 大数据
查看>>
python登陆Tom邮箱的代码一例
查看>>
技术不可持续性所面对的挑战及解决方案
查看>>
Replication--复制笔记1
查看>>
强大的JS数组
查看>>
[实变函数]4.3 可测函数的构造
查看>>
mysql数据库查询优化
查看>>
sdut 2158:Hello World!(第一届山东省省赛原题,水题,穷举)
查看>>
[转]最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等本文出处...
查看>>
AndroidUI 控件命名格式
查看>>
数据库系统基本概念
查看>>
tcpCopy
查看>>