image.png
    List brands = brandMapper.selectAll();
    // 使用该接口的代理对象,调用其接口方法,接口方法有对应的配置文件XML,
    // XML文件中有对应的sql语句,可以执行,查询到的结果返回有个 集合对象

    image.png

    1. package com.itheima.mapper;
    2. import com.itheima.pojo.Brand;
    3. import org.apache.ibatis.io.Resources;
    4. import org.apache.ibatis.session.SqlSession;
    5. import org.apache.ibatis.session.SqlSessionFactory;
    6. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    7. import org.junit.Test;
    8. import java.io.IOException;
    9. import java.io.InputStream;
    10. import java.util.List;
    11. public class MyBatisTest {
    12. @Test
    13. public void testSelectAll() throws Exception {
    14. // 1. 获取SqlSessionFactory
    15. // 1. 加载mybatis的核心配置文件,获取SqlSessionFactory
    16. // 1. 加载mybatis的核心配置文件,获取SqlSessionFactory (sql会话工厂)
    17. String resource = "mybatis-config.xml";
    18. InputStream inputStream = Resources.getResourceAsStream(resource);
    19. SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    20. // 2. 获取SqlSession对象
    21. SqlSession sqlSession = sqlSessionFactory.openSession();
    22. //3. 获取Mapper接口的代理对象
    23. BrandMapper brandMapper = sqlSession.getMapper(BrandMapper.class);// 将该接口的的class对象,传进去,就可以获得该借口的代理对象
    24. // 4. 执行方法:
    25. List<Brand> brands = brandMapper.selectAll(); // 使用该接口的代理对象,调用其接口方法,接口方法有对应的配置文件XML,
    26. // XML文件中有对应的sql语句,可以执行,查询到的结果返回有个 集合<Brand>对象
    27. System.out.println(brands); // 打印集合对象,查看其存储的Brand类对象
    28. // 5. 释放资源
    29. sqlSession.close();
    30. }
    31. }
    1. <?xml version="1.0" encoding="UTF-8" ?>
    2. <!DOCTYPE mapper
    3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    5. <!--
    6. Mapper是映射的意思
    7. namespace:名称空间
    8. -->
    9. <mapper namespace="com.itheima.mapper.BrandMapper">
    10. <!--
    11. 数据库表的字段名称 实体类的属性名称 不一样,则不能自动封装数据
    12. 解决方法:
    13. * 起别名: 对不一样的列名
    14. * 缺点: 每次查询都要定义一次别名
    15. * sql 片段
    16. * 缺点:不灵活
    17. * resultMap
    18. 1. 定义<resultMap>标签
    19. 2. 在<select>标签中,使用resultMap属性替换,resultType属性
    20. -->
    21. <!--
    22. id: 唯一标识
    23. type: 映射的类型,支持别名
    24. -->
    25. <resultMap id="brandResultMap" type="brand">
    26. <!-- 这个是column是列名(也可以叫字段名,property)叫属性名 -->
    27. <!--
    28. id: 完成主键字段的映射
    29. column: 表的列名
    30. property: 实体类的属性名
    31. result: 完成一般字段的映射
    32. column: 表的列名
    33. property: 实体类的属性名
    34. -->
    35. <result column="brand_name" property="brandName" />
    36. <result column="company_name" property="companyName" />
    37. </resultMap>
    38. <select id="selectAll" resultMap="brandResultMap">
    39. select
    40. *
    41. from tb_brand;
    42. </select>
    43. <!--
    44. sql片段
    45. -->
    46. <!-- <sql id="brand_column"> &#45;&#45; 这里是标明 brand类的字段全部用sql片段代替-->
    47. <!-- id, brand_name as brandName, company_name as companyName, ordered, description, status-->
    48. <!-- </sql>-->
    49. <!-- <select id="selectAll" resultType="com.itheima.pojo.Brand">-->
    50. <!-- &lt;!&ndash;在这里面写查询语句 &ndash;&gt;-->
    51. <!-- select-->
    52. <!-- <include refid="brand_column"></include>-->
    53. <!-- from tb_brand;-->
    54. <!-- </select>-->
    55. <!-- <select id="selectAll" resultType="com.itheima.pojo.Brand">-->
    56. <!-- &lt;!&ndash;在这里面写查询语句 &ndash;&gt;-->
    57. <!-- select id, brand_name as brandName, company_name as companyName, ordered, description, status-->
    58. <!-- from tb_brand;-->
    59. <!-- </select>-->
    60. <!-- <select id="selectAll" resultType="com.itheima.pojo.Brand">-->
    61. <!-- &lt;!&ndash;在这里面写查询语句 &ndash;&gt;-->
    62. <!-- select *-->
    63. <!-- from tb_brand;-->
    64. <!-- </select>-->
    65. </mapper>