1 数据库
mysql> select * from user;
+
| id | username | birthday | sex | address |
+
| 1 | 王五 | NULL | 2 | 仙女系 |
| 10 | Charles | 2021-10-21 | 1 | 银河系 |
| 16 | 张小明 | NULL | 1 | 河南郑州 |
| 22 | 陈小明 | NULL | 1 | 河南郑州 |
| 24 | 张三丰 | NULL | 1 | 河南郑州 |
| 25 | 陈小明 | NULL | 1 | 河南郑州 |
| 26 | 李白2 | 2021-10-22 | 2 | 666 |
| 28 | 李白 | 2021-10-22 | 2 | 666 |
+
mysql> select * from orders;
+
| id | user_id | number | createtime | note |
+
| 3 | 1 | 1000010 | 2015-02-04 13:22:35 | NULL |
| 4 | 1 | 1000011 | 2015-02-03 13:22:41 | NULL |
| 5 | 10 | 1000012 | 2015-02-12 16:13:23 | NULL |
+
2 一对一查询
2.1 方法一 resultType
sql
select orders.*, user.username,user.address
from orders,user
where orders.user_id=user.id;
Orders.java
import java.util.Date;
import java.util.List;
public class Orders {
private Integer id;
private Integer userId;
private String number;
private Date createtime;
private String note;
get set...
toString()
}
OrdersCustom.java 继承 Orders.java
package net920vip.bean;
public class OrdersCustom extends Orders {
private String username;
private String adress;
get set...
toString()
}
UserMapper.xml
<select id="findOrdersList" resultType="OrdersCustom">
select orders.*, user.username,user.address
from orders,user
where orders.user_id=user.id;
</select>
接口:UserMapper.java
package net920vip.mapper;
import net920vip.bean.Orders;
import net920vip.bean.UserBean;
import java.util.List;
public interface UserMapper {
public List<OrdersCustom> findOrdersList() throws Exception;
}
Test.java
List<OrdersCustom> list = userMapper.findOrdersList();
for (OrdersCustom ordersCustom : list) {
System.out.println(ordersCustom.getNumber());
System.out.println(ordersCustom.getUsername());
}
2.2 方法二 resultMap方式
Orders.java
package net920vip.bean;
package net920vip.bean;
import java.util.Date;
import java.util.List;
public class Orders {
private Integer id;
private Integer userId;
private String number;
private Date createtime;
private String note;
private UserBean userBean;
get set...
toString()
}
接口UserMapper.java
package net920vip.mapper;
import net920vip.bean.Orders;
import net920vip.bean.UserBean;
import java.util.List;
public interface UserMapper {
public List<Orders> findOrdersListMap() throws Exception;
}
Test.java
List<Orders> list = userMapper.findOrdersListMap();
System.out.println(list);
System.out.println(list.get(0).getUserBean().getUsername());
for (Orders i:list){
System.out.println(i);
}
<h2><a id="1__0"></a>1 数据库</h2>
<pre><div class="hljs"><code class="lang-sql">mysql<span class="hljs-operator">></span> <span class="hljs-keyword">select</span> <span class="hljs-operator">*</span> <span class="hljs-keyword">from</span> <span class="hljs-keyword">user</span>;
<span class="hljs-operator">+</span><span class="hljs-comment">----+----------+------------+-----+----------+</span>
<span class="hljs-operator">|</span> id <span class="hljs-operator">|</span> username <span class="hljs-operator">|</span> birthday <span class="hljs-operator">|</span> sex <span class="hljs-operator">|</span> address <span class="hljs-operator">|</span>
<span class="hljs-operator">+</span><span class="hljs-comment">----+----------+------------+-----+----------+</span>
<span class="hljs-operator">|</span> <span class="hljs-number">1</span> <span class="hljs-operator">|</span> 王五 <span class="hljs-operator">|</span> <span class="hljs-keyword">NULL</span> <span class="hljs-operator">|</span> <span class="hljs-number">2</span> <span class="hljs-operator">|</span> 仙女系 <span class="hljs-operator">|</span>
<span class="hljs-operator">|</span> <span class="hljs-number">10</span> <span class="hljs-operator">|</span> Charles <span class="hljs-operator">|</span> <span class="hljs-number">2021</span><span class="hljs-number">-10</span><span class="hljs-number">-21</span> <span class="hljs-operator">|</span> <span class="hljs-number">1</span> <span class="hljs-operator">|</span> 银河系 <span class="hljs-operator">|</span>
<span class="hljs-operator">|</span> <span class="hljs-number">16</span> <span class="hljs-operator">|</span> 张小明 <span class="hljs-operator">|</span> <span class="hljs-keyword">NULL</span> <span class="hljs-operator">|</span> <span class="hljs-number">1</span> <span class="hljs-operator">|</span> 河南郑州 <span class="hljs-operator">|</span>
<span class="hljs-operator">|</span> <span class="hljs-number">22</span> <span class="hljs-operator">|</span> 陈小明 <span class="hljs-operator">|</span> <span class="hljs-keyword">NULL</span> <span class="hljs-operator">|</span> <span class="hljs-number">1</span> <span class="hljs-operator">|</span> 河南郑州 <span class="hljs-operator">|</span>
<span class="hljs-operator">|</span> <span class="hljs-number">24</span> <span class="hljs-operator">|</span> 张三丰 <span class="hljs-operator">|</span> <span class="hljs-keyword">NULL</span> <span class="hljs-operator">|</span> <span class="hljs-number">1</span> <span class="hljs-operator">|</span> 河南郑州 <span class="hljs-operator">|</span>
<span class="hljs-operator">|</span> <span class="hljs-number">25</span> <span class="hljs-operator">|</span> 陈小明 <span class="hljs-operator">|</span> <span class="hljs-keyword">NULL</span> <span class="hljs-operator">|</span> <span class="hljs-number">1</span> <span class="hljs-operator">|</span> 河南郑州 <span class="hljs-operator">|</span>
<span class="hljs-operator">|</span> <span class="hljs-number">26</span> <span class="hljs-operator">|</span> 李白<span class="hljs-number">2</span> <span class="hljs-operator">|</span> <span class="hljs-number">2021</span><span class="hljs-number">-10</span><span class="hljs-number">-22</span> <span class="hljs-operator">|</span> <span class="hljs-number">2</span> <span class="hljs-operator">|</span> <span class="hljs-number">666</span> <span class="hljs-operator">|</span>
<span class="hljs-operator">|</span> <span class="hljs-number">28</span> <span class="hljs-operator">|</span> 李白 <span class="hljs-operator">|</span> <span class="hljs-number">2021</span><span class="hljs-number">-10</span><span class="hljs-number">-22</span> <span class="hljs-operator">|</span> <span class="hljs-number">2</span> <span class="hljs-operator">|</span> <span class="hljs-number">666</span> <span class="hljs-operator">|</span>
<span class="hljs-operator">+</span><span class="hljs-comment">----+----------+------------+-----+----------+</span>
mysql<span class="hljs-operator">></span> <span class="hljs-keyword">select</span> <span class="hljs-operator">*</span> <span class="hljs-keyword">from</span> orders;
<span class="hljs-operator">+</span><span class="hljs-comment">----+---------+---------+---------------------+------+</span>
<span class="hljs-operator">|</span> id <span class="hljs-operator">|</span> user_id <span class="hljs-operator">|</span> number <span class="hljs-operator">|</span> createtime <span class="hljs-operator">|</span> note <span class="hljs-operator">|</span>
<span class="hljs-operator">+</span><span class="hljs-comment">----+---------+---------+---------------------+------+</span>
<span class="hljs-operator">|</span> <span class="hljs-number">3</span> <span class="hljs-operator">|</span> <span class="hljs-number">1</span> <span class="hljs-operator">|</span> <span class="hljs-number">1000010</span> <span class="hljs-operator">|</span> <span class="hljs-number">2015</span><span class="hljs-number">-02</span><span class="hljs-number">-04</span> <span class="hljs-number">13</span>:<span class="hljs-number">22</span>:<span class="hljs-number">35</span> <span class="hljs-operator">|</span> <span class="hljs-keyword">NULL</span> <span class="hljs-operator">|</span>
<span class="hljs-operator">|</span> <span class="hljs-number">4</span> <span class="hljs-operator">|</span> <span class="hljs-number">1</span> <span class="hljs-operator">|</span> <span class="hljs-number">1000011</span> <span class="hljs-operator">|</span> <span class="hljs-number">2015</span><span class="hljs-number">-02</span><span class="hljs-number">-03</span> <span class="hljs-number">13</span>:<span class="hljs-number">22</span>:<span class="hljs-number">41</span> <span class="hljs-operator">|</span> <span class="hljs-keyword">NULL</span> <span class="hljs-operator">|</span>
<span class="hljs-operator">|</span> <span class="hljs-number">5</span> <span class="hljs-operator">|</span> <span class="hljs-number">10</span> <span class="hljs-operator">|</span> <span class="hljs-number">1000012</span> <span class="hljs-operator">|</span> <span class="hljs-number">2015</span><span class="hljs-number">-02</span><span class="hljs-number">-12</span> <span class="hljs-number">16</span>:<span class="hljs-number">13</span>:<span class="hljs-number">23</span> <span class="hljs-operator">|</span> <span class="hljs-keyword">NULL</span> <span class="hljs-operator">|</span>
<span class="hljs-operator">+</span><span class="hljs-comment">----+---------+---------+---------------------+------+</span>
</code></div></pre>
<h2><a id="2__26"></a>2 一对一查询</h2>
<h3><a id="21__resultType_27"></a>2.1 方法一 resultType</h3>
<p>sql</p>
<pre><div class="hljs"><code class="lang-sql"><span class="hljs-keyword">select</span> orders.<span class="hljs-operator">*</span>, user.username,user.address
<span class="hljs-keyword">from</span> orders,<span class="hljs-keyword">user</span>
<span class="hljs-keyword">where</span> orders.user_id<span class="hljs-operator">=</span>user.id;
</code></div></pre>
<p>Orders.java</p>
<pre><div class="hljs"><code class="lang-java"><span class="hljs-keyword">import</span> java.util.Date;
<span class="hljs-keyword">import</span> java.util.List;
<span class="hljs-keyword">public</span> <span class="hljs-keyword">class</span> <span class="hljs-title class_">Orders</span> {
<span class="hljs-keyword">private</span> Integer id;
<span class="hljs-keyword">private</span> Integer userId;
<span class="hljs-keyword">private</span> String number;
<span class="hljs-keyword">private</span> Date createtime;
<span class="hljs-keyword">private</span> String note;
get set...
toString()
}
</code></div></pre>
<p>OrdersCustom.java 继承 Orders.java</p>
<pre><div class="hljs"><code class="lang-java"><span class="hljs-keyword">package</span> net920vip.bean;
<span class="hljs-keyword">public</span> <span class="hljs-keyword">class</span> <span class="hljs-title class_">OrdersCustom</span> <span class="hljs-keyword">extends</span> <span class="hljs-title class_">Orders</span> {
<span class="hljs-keyword">private</span> String username;
<span class="hljs-keyword">private</span> String adress;
get set...
toString()
}
</code></div></pre>
<p>UserMapper.xml</p>
<pre><div class="hljs"><code class="lang-xml"><span class="hljs-comment"><!-- 一对一查询,resultType --></span>
<span class="hljs-tag"><<span class="hljs-name">select</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"findOrdersList"</span> <span class="hljs-attr">resultType</span>=<span class="hljs-string">"OrdersCustom"</span>></span>
select orders.*, user.username,user.address
from orders,user
where orders.user_id=user.id;
<span class="hljs-tag"></<span class="hljs-name">select</span>></span>
</code></div></pre>
<p>接口:UserMapper.java</p>
<pre><div class="hljs"><code class="lang-java"><span class="hljs-keyword">package</span> net920vip.mapper;
<span class="hljs-keyword">import</span> net920vip.bean.Orders;
<span class="hljs-keyword">import</span> net920vip.bean.UserBean;
<span class="hljs-keyword">import</span> java.util.List;
<span class="hljs-comment">/**
* 接口文件 对应UserMapper.xml文件
* 用户管理mapper
* */</span>
<span class="hljs-keyword">public</span> <span class="hljs-keyword">interface</span> <span class="hljs-title class_">UserMapper</span> {
<span class="hljs-comment">// 一对一查询:查询所有orders,关联其下单用户 resultTypt方式</span>
<span class="hljs-keyword">public</span> List<OrdersCustom> <span class="hljs-title function_">findOrdersList</span><span class="hljs-params">()</span> <span class="hljs-keyword">throws</span> Exception;
}
</code></div></pre>
<p>Test.java</p>
<pre><div class="hljs"><code class="lang-java"><span class="hljs-comment">// 一对一查询 orders关联user:resultType方式</span>
List<OrdersCustom> list = userMapper.findOrdersList();
<span class="hljs-keyword">for</span> (OrdersCustom ordersCustom : list) {
System.out.println(ordersCustom.getNumber());
System.out.println(ordersCustom.getUsername());
}
</code></div></pre>
<h3><a id="22__resultMap_104"></a>2.2 方法二 resultMap方式</h3>
<p>Orders.java</p>
<pre><div class="hljs"><code class="lang-java"><span class="hljs-keyword">package</span> net920vip.bean;
<span class="hljs-keyword">package</span> net920vip.bean;
<span class="hljs-keyword">import</span> java.util.Date;
<span class="hljs-keyword">import</span> java.util.List;
<span class="hljs-keyword">public</span> <span class="hljs-keyword">class</span> <span class="hljs-title class_">Orders</span> {
<span class="hljs-keyword">private</span> Integer id;
<span class="hljs-keyword">private</span> Integer userId;
<span class="hljs-keyword">private</span> String number;
<span class="hljs-keyword">private</span> Date createtime;
<span class="hljs-keyword">private</span> String note;
<span class="hljs-comment">// 因为是一对一关系,所以在此处加入user属性</span>
<span class="hljs-keyword">private</span> UserBean userBean;
get set...
toString()
}
</code></div></pre>
<p>接口UserMapper.java</p>
<pre><div class="hljs"><code class="lang-java"><span class="hljs-keyword">package</span> net920vip.mapper;
<span class="hljs-keyword">import</span> net920vip.bean.Orders;
<span class="hljs-keyword">import</span> net920vip.bean.UserBean;
<span class="hljs-keyword">import</span> java.util.List;
<span class="hljs-comment">/**
* 接口文件 对应UserMapper.xml文件
* 用户管理mapper
* */</span>
<span class="hljs-keyword">public</span> <span class="hljs-keyword">interface</span> <span class="hljs-title class_">UserMapper</span> {
<span class="hljs-comment">// 一对一查询:查询所有orders,关联其下单用户 resultMap方式</span>
<span class="hljs-keyword">public</span> List<Orders> <span class="hljs-title function_">findOrdersListMap</span><span class="hljs-params">()</span> <span class="hljs-keyword">throws</span> Exception;
}
</code></div></pre>
<p>Test.java</p>
<pre><div class="hljs"><code class="lang-java"><span class="hljs-comment">// 一对一查询 orders关联user:resultMap方式</span>
List<Orders> list = userMapper.findOrdersListMap();
System.out.println(list);
System.out.println(list.get(<span class="hljs-number">0</span>).getUserBean().getUsername());
<span class="hljs-keyword">for</span> (Orders i:list){
System.out.println(i);
}
</code></div></pre>
留言