栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Mybatis入门学习案例

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mybatis入门学习案例

1.Mybatis入门操作 1.1简化Mybatis操作 1.1.1@BeforeEach注解说明

该注解的作用是在执行@Test方法之前调用 是测试方法提供的的测试API

1.1.2测试案例
public class TestMybatis2 {

      //定义公共的属性
      private SqlSessionFactory sqlSessionFactory;
      
      @BeforeEach
      public void init() throws IOException {
            //1.指定资源文件
            String resource = "mybatis/mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory =
                    new SqlSessionFactoryBuilder().build(inputStream);
      }
      
      @Test
      public void testMybatis01(){
            SqlSession sqlSession = sqlSessionFactory.openSession();
            DemoUserMapper demoUserMapper = sqlSession.getMapper(DemoUserMapper.class);
            List list = demoUserMapper.findAll();
            System.out.println(list);
            sqlSession.close();
      }
}
1.2.1编辑测试类
 

      @Test
      public void testFindByName(){
            //保证每个线程都能获取一个链接
            SqlSession sqlSession = sqlSessionFactory.openSession();
            DemoUserMapper demoUserMapper = sqlSession.getMapper(DemoUserMapper.class);
            String name = "王昭君";
            //如果不能保证结果唯一,则使用List集合接收数据.
            List list = demoUserMapper.findByName(name);
            System.out.println(list);
            sqlSession.close();
      }

1.2.2编辑xml映射文件
 
    
        select * from demo_user where name = #{name}
    

2.Mybatis参数封装 2.1案例分析 2.1.1编辑测试方法
      @Test
      public void testFindBySA(){
            //保证每个线程都能获取一个链接
            SqlSession sqlSession = sqlSessionFactory.openSession();
            DemoUserMapper demoUserMapper = sqlSession.getMapper(DemoUserMapper.class);
            //编程习惯: 面向对象
            DemoUser user = new DemoUser();
            user.setAge(18).setSex("女");
            List list = demoUserMapper.findBySA(user);
            System.out.println(list);
            sqlSession.close();
      }

2.1.2 编辑业务接口

2.1.3编辑映射文件

    
        select * from emp
    

    
        
        
    

    
        select d.dept_id,d.dept_name,e.id,e.name,e.age from
            dept d
                left join
            emp e
            on
                d.dept_id = e.dept_id
    

    
    
        

        
            
        
    
6.1设置自动驼峰映射规则

在核心配置文件中,添加自动驼峰命名配置


        
        

7.Mybatis缓存机制 7.1什么是缓存机制

说明:引入缓存可以有效降低用户访问屋里设备的频次,提高用户影响速度
扩展:

  1. mybatis自身缓存 一级缓存/二级缓存
  2. Redis缓存 读取10万次/秒,写8.6万次/秒

7.1.1一级缓存

概念说明:Mybatis默认开启一级缓存,一级缓存可以在同一个SqlSession对象中查询相同的数据,可以实现数据的共享(缓存操作)
测试:

    @Test
    public void cache1(){
        SqlSession sqlSession = sqlSessionFactory.openSession();
        DemoUserMapper demoUserMapper = sqlSession.getMapper(DemoUserMapper.class);
        List list1 = demoUserMapper.findAll();
        List list2 =demoUserMapper.findAll();
        List list3 =demoUserMapper.findAll();
        System.out.println(list1 == list2);
        sqlSession.close();
    }

7.1.2二级缓存

说明:二级缓存Mybatis中默认也是开启的,但是需要手动标识,二级缓存可以在同一个SqlSessionFactory内部有效

全局配置:

二级缓存使用:

说明:SqlSession查询数据之后,会将缓存信息保存到一级缓存中,但是不会立即将缓存交给二级缓存保管,如果需要使用二级缓存,则必须将sqlSession业务逻辑执行完成之后,并且关闭了

  
    @Test
    public void cache2(){
        SqlSession sqlSession = sqlSessionFactory.openSession();
        DemoUserMapper demoUserMapper = sqlSession.getMapper(DemoUserMapper.class);
        demoUserMapper.findAll();
        //关闭一级缓存
        sqlSession.close();

        SqlSession sqlSession2 = sqlSessionFactory.openSession();
        DemoUserMapper demoUserMapper2 = sqlSession2.getMapper(DemoUserMapper.class);
        demoUserMapper2.findAll();
        sqlSession2.close();
    }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/269967.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号