SELECT
id
,
user_id
userId,
number
,
createtime
,
note
FROM order
(3)创建单元测试包OrderMapperTest
package com.itzheng.mybatis.test;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;
import com.itzheng.mybatis.mapper.OrderMapper;
import com.itzheng.mybatis.pojo.Order;
import com.itzheng.mybatis.utils.SqlSessionFactoryUtils;
public class OrderMapperTest {
@Test
public void testGetOrderList() {
SqlSession openSession = SqlSessionFactoryUtils.getSqlSessionFactory().openSession();
//获取OrderMapper代理实现
OrderMapper ordermapper = openSession.getMapper(OrderMapper.class);
List list = ordermapper.getOrderList();
for (Order order : list) {
System.out.println(order);
}
openSession.close();
}
}
运行测试
4、resultMap
(1)修改OrderMapper.xml添加
SELECT
id
,
user_id
,
number
,
createtime
,
note
FROM order
(2)在OrderMapper接口当中创建getOrderListMap方法
List getOrderListMap();
测试运行
5、动态sql-if标签的使用(条件查询)
(1)修改UserMapper.xml
SELECT
id,
username,
birthday,
sex,
address
FROM user
WHERE 1 = 1
and username LIKE ‘%${username}%’
and sex = #{sex}
(2)在接口当中创建对应的方法
List getUserByPojo(User user);
(3)UserMapperTest当中创建对应的testGetUserByPojo方法
@Test
public void testGetUserByPojo() {
SqlSession openSession = SqlSessionFactoryUtils.getSqlSessionFactory().openSession();
// 获取接口的代理实现类
UserMapper userMapper = openSession.getMapper(UserMapper.class);
User user = new User();
user.setSex(“1”);
user.setUsername(“张”);
List userByPojo = userMapper.getUserByPojo(user);
for (User user2 : userByPojo) {
System.out.println(user2);
}
openSession.close();
}
运行测试
6、动态sql-sql片段的使用
(1)抽取SQL片段
id,
username,
birthday,
sex,
address
(2)引用sql片段的id
SELECT
FROM
USER WHERE id = #{id1}
(3)运行测试代码
7、sql-foreach标签的使用:
(1)修改QueryVo类
(2)修改UserMapper.xml
SELECT
FROM user
WHERE id IN(1,25,29,30,35)
运行测试代码
8、(方式一)一对一关联查询
(1)创建OrderUser
package com.itzheng.mybatis.pojo;
/*
- 订单关联用户信息的pojo
*/
public class OrderUser extends Order {
private String username;// 用户姓名
private String address;// 地址
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return “OrderUser [username=” + username + “, address=” + address + “, getUsername()=” + getUsername()
-
“, getAddress()=” + getAddress() + “, getId()=” + getId() + “, getUserId()=” + getUserId()
-
“, getNumber()=” + getNumber() + “, getCreatetime()=” + getCreatetime() + “, getNote()=” + getNote()
-
“, toString()=” + super.toString() + “, getClass()=” + getClass() + “, hashCode()=” + hashCode()
-
“]”;
}
}
(2)修改OrderMapper.xml
SELECT
o.id
,
o.user_id
userId,
o.number
,
o.createtime
,
o.note
,
u.username
,
u.address
FROM
order
o
LEFT JOIN user
u
ON u.id = o.user_id
(3)OrderMapper接口当中创建getOrderUser方法
/*
- 一对一关联:resultType使用
*/
List getOrderUser();
(4)OrderMapperTest当中编写测试方法testGetOrderUser
@Test
public void testGetOrderUser() {
SqlSession openSession = SqlSessionFactoryUtils.getSqlSessionFactory().openSession();
//获取OrderMapper代理实现
OrderMapper ordermapper = openSession.getMapper(OrderMapper.class);
List orderUser = ordermapper.getOrderUser();
for (OrderUser orderUser2 : orderUser) {
System.out.println(orderUser2);
}
openSession.close();
}
运行测试代码
9、(方式一)一对一关联查询:ResultMap:一个订单只有一个人
(1)修改Order
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
(2)修改OrderMapper.xml
SELECT
o.id
,
o.user_id
userId,
o.number
,
o.createtime
,
o.note
,
u.username
,
u.address
,
u.birthday
,
u.sex
FROM
order
o
LEFT JOIN user
u
ON u.id = o.user_id
(3)在OrderMapper接口当中编写getOrderUserMap方法
/*
- 一对一关联:ResultMap使用
*/
List getOrderUserMap();
难道这样就够了吗?不,远远不够!
提前多熟悉阿里往年的面试题肯定是对面试有很大的帮助的,但是作为技术性职业,手里有实打实的技术才是你面对面试官最有用的利器,这是从内在散发出来的自信。
备战阿里时我花的最多的时间就是在学习技术上,占了我所有学习计划中的百分之70,这是一些我学习期间觉得还是很不错的一些学习笔记
我为什么要写这篇文章呢,其实我觉得学习是不能停下脚步的,在网络上和大家一起分享,一起讨论,不单单可以遇到更多一样的人,还可以扩大自己的眼界,学习到更多的技术,我还会在csdn、博客、掘金等网站上分享技术,这也是一种学习的方法。
今天就分享到这里了,谢谢大家的关注,以后会分享更多的干货给大家!
JOIN user
u
ON u.id = o.user_id
(3)在OrderMapper接口当中编写getOrderUserMap方法
/*
- 一对一关联:ResultMap使用
*/
List getOrderUserMap();
难道这样就够了吗?不,远远不够!
提前多熟悉阿里往年的面试题肯定是对面试有很大的帮助的,但是作为技术性职业,手里有实打实的技术才是你面对面试官最有用的利器,这是从内在散发出来的自信。
备战阿里时我花的最多的时间就是在学习技术上,占了我所有学习计划中的百分之70,这是一些我学习期间觉得还是很不错的一些学习笔记
我为什么要写这篇文章呢,其实我觉得学习是不能停下脚步的,在网络上和大家一起分享,一起讨论,不单单可以遇到更多一样的人,还可以扩大自己的眼界,学习到更多的技术,我还会在csdn、博客、掘金等网站上分享技术,这也是一种学习的方法。
今天就分享到这里了,谢谢大家的关注,以后会分享更多的干货给大家!
[外链图片转存中…(img-hhDrlj1r-1714420670169)]
[外链图片转存中…(img-eDsQTOUf-1714420670170)]
[外链图片转存中…(img-NCUQ88ZQ-1714420670170)]