#千锋逆战# Mybatis多表联合

Mybatis多表联合查找

  1. 加入依赖

    • 加入mybatis核心依赖,junit测试,mysql依赖

    • 
          
              junit
              junit
              4.12
          
      
          
              mysql
              mysql-connector-java
              5.1.47
          
      
          
              org.mybatis
              mybatis
              3.4.6
          
      
  2. XML配置

    • resources目录下新建Mybatis.xml文件

    • 导入db.properties资源文件,如下

      driver=com.mysql.jdbc.Driver
      url=jdbc:mysql://localhost:3307/shop_mybatis
      username=root
      password=970809
      
    • 设置settings,加入自动日志

    • 设置typeAliases,设置别名包,此包下的引用可直接写类名,忽略大小写

    • 设置连接池属性POOLED

    • 在mappers标签下设置对应的映射文件路径

    • 
      
      
          
      
          
          
              
          
          
              
          
      
          
              
                  
                  
                      
                      
                      
                      
                  
              
          
      
          
          
              
              
              
              
              
          
      
      
  3. OrderMapper.xml配置例举

    • namespace和id组合唯一,可自定义

    • 使用select标签进行查询操作,其他操作分别为update,insert,delete

    • 使用resultMap进行联合查询

    • resultMap标签下 如果对应pojo内的属性名(property)和数据库表中的列名相同,可省略不写result标签

    • 使用association标签进行对一的表结构联合查询,使用Collection标签进行对多的表结构联合查询

    • 
      
      
          
          
          
      
      
      
      
      
              
              
      
             
              
          
      
      
  4. UserMapper.xml

    • 
      
      
          
      
      
      
  5. DetailMapper.xml

    • 
      
      
          
      
      
          
      
      
      
              
          
      
      
      
  6. ProductMapper.xml

    • 
      
      
          
      
          
      
      
      
      
      
      
              
          
      
      
      
  7. TypeMapper.xml

    • 
      
      
          
      
      
      
  8. 测试类

    • 使用junit的@Before注解,setUp在所有方法运行前运行

    • 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 org.junit.After;
      import org.junit.Before;
      import org.junit.Test;
      import pojo.Order;
      
      import java.io.IOException;
      
      public class TestOrders {
          private SqlSessionFactory sf = null;
          private SqlSession session = null;
      
          @Before
          public void setUp() {
              try {
                  sf = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("Mybatis.xml"));
                  session = sf.openSession();
              } catch (IOException e) {
                  e.printStackTrace();
              }
          }
      
          @After
          public void tearDown() {
              if (session != null) {
                  session.close();
                  session = null;
              }
          }
      
          @Test
          public void testGetOrderByOid() {
              Order order = session.selectOne("pojo.OrderMapper.getOrderByOid",1);
              System.out.println(order);
          }
      }
      

你可能感兴趣的:(#千锋逆战# Mybatis多表联合)