zoukankan      html  css  js  c++  java
  • MyBatis

     
    MyBatis工作流程:
    1、通过Reader对象读取src目录下的mybatis.xml配置文件
    2、通过SqlSessionFactoryBuilder对象创建SqlSessionFactory对象
    3、从当前线程中获取SqlSession对象
    4、事务开始,在mybatis中默认
    5、通过SqlSession对象读取mapper.xml中的id,从而读取sql语句
    6、事务提交,,在mybatis中默认
    7、关闭SqlSession对象,并且分开当前线程与SqlSession对象,让GC尽早回收
     
     1 //得到SqlSessionFactory 对象
     2 private SqlSessionFactory getSqlSessionFactory(){
     3   if (sessionFactory == null) {
     4     String resource =  Play.configuration.getProperty("mybatis.configuration");     //得到mybatis.xml的地址
     5     
     6     Reader   reader = Resources.getResourceAsReader(resource);    //通过Reader读取配置文件
     7  
     8     Properties prop = new Properties();
     9     
    10     prop.put("url", Play.configuration.getProperty("db.mct.url"));
    11     prop.put("user", Play.configuration.getProperty("db.mct.user"));
    12     prop.put("pass", Play.configuration.getProperty("db.mct.pass"));
    13     prop.put("driver", Play.configuration.getProperty("db.mct.driver"));
    14 
    15     sessionFactory = new SqlSessionFactoryBuilder().build(reader, prop);   //通过SqlSessionFactoryBuilder对象创建SqlSessionFactory对象
    16 
    17   }
    18   
    19   return sessionFactory;
    20 }
     1 public List<String> getScreenShotPackageNames(Long taskId, String sn)  throws Exception {
     2         SqlSession sqlSession =  IbatisSessionFactoryMctDB.get().openSession();      //获取SqlSession对象
     3         try {
     4             DfxTaskMapper mapper =  sqlSession.getMapper(DfxTaskMapper.class);   //通过SqlSession对象读取DfxTaskMapper文件
     5             Map<String, Object> mmap = new HashMap<String, Object>();
     6             mmap.put("taskId",  taskId );
     7             mmap.put("sn",  sn );
     8           List<String> pkgNames= mapper.getScreenShotPackageNames(mmap);   //调用mapper中的方法
     9             return pkgNames;
    10         }catch (Exception e){
    11             throw e;
    12         }finally {
    13             if(null!=sqlSession){
    14                 sqlSession.close();      //关闭sqlSession对象
    15             }
    16         }
    17     }
    18 }

    https://www.cnblogs.com/ysocean/tag/MyBatis%E8%AF%A6%E8%A7%A3%E7%B3%BB%E5%88%97/

  • 相关阅读:
    JavaSE 基础 第54节 继承Thread类创建线程
    flask 项目部分业务逻辑
    js生成随机的uuid
    增量式爬虫
    分布式爬虫
    scrapy 的分页爬取 CrawlSpider
    scrapy 请求传参
    scrapy增加爬取效率
    scrapy框架
    模拟登陆request-session
  • 原文地址:https://www.cnblogs.com/HathawayLee/p/9600544.html
Copyright © 2011-2022 走看看