首页 > 其他分享 >junit测试对应功能,方法使用

junit测试对应功能,方法使用

时间:2024-05-25 23:02:34浏览次数:23  
标签:mapper 对象 SqlSession 对应 获取 sqlSession 测试 SqlSessionFactoryBuilder junit

1.介绍和使用

Ø  SqlSession:代表Java程序和数据库之间的会话。(HttpSession是Java程序和浏览器之间的会话)

Ø  SqlSessionFactory:是“生产”SqlSession的“工厂”。

Ø  工厂模式:如果创建某一个对象,使用的过程基本固定,就可以把创建这个对象的相关代码封装到一个“工厂类”中,以后都使用这个工厂类来“生产”所需要的对象。

//1.获取核心配置文件的输入流
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
//2.获取SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
//3.获取SqlSessionFactory对象
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
//4.获取SqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
//5.获取UserMapper的代理实现类对象
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//6.调用mapper接口中的方法,实现添加用户信息的功能
int result = mapper.insertUser();
//7.输出
System.out.println("结果"+result);
//8.提交事务
sqlSession.commit();
//9.关闭资源
sqlSession.close();
inputStream.close();
2.简化1

(省略步骤8)

        //4.获取SqlSession对象(能自动提交)
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
3.简化2

(1)先创建SqlSessionUtil

public class SqlSessionUtil {
    public static SqlSession getSqlSession(){
        //1.获取核心配置文件的输入流
        InputStream inputStream = null;
        SqlSession sqlSession =null;
        try {
            inputStream = Resources.getResourceAsStream("mybatis-config.xml");
            //2.获取SqlSessionFactoryBuilder对象
            SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
            //3.获取SqlSessionFactory对象
            SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
            //4.获取SqlSession对象(能自动提交)
            sqlSession = sqlSessionFactory.openSession(true);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return sqlSession;
    }
}

(2)Test

//1.获取SqlSession对象
SqlSession sqlSession = SqlSessionUtil.getSqlSession();
//2.获取UserMapper的代理实现类对象
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//3.调用mapper接口中的方法,实现添加用户信息的功能
int result = mapper.insertUser();
//4.输出
System.out.println("结果"+result);
//5.关闭资源
sqlSession.close();

标签:mapper,对象,SqlSession,对应,获取,sqlSession,测试,SqlSessionFactoryBuilder,junit
From: https://blog.csdn.net/2301_79659699/article/details/139205183

相关文章

  • Python一个简单的单元测试
    Python一个简单的单元测试提示:以下内容均为个人原创!文章目录Python一个简单的单元测试一、介绍二、使用1.创建逻辑代码2.生成单元测试3.生成单元测试的方式(1).直接在逻辑代码中添加(2).单独制作4.运行代码总结一、介绍在使用Python制作模块后,总是不确定模块中......
  • 一篇文章让你了解软件测试
    黑盒测试黑盒测试又称正确性测试,或功能测试,是对产品的各功能进行验证,用于检查产品是否达到用户要求的功能或者说检查软件的功能是否符合规格说明。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否......
  • 5.9~5.25 测试总结
    5.25Codeforces1863(PinelyRound2(Div1+2)VP)result:只过了前四道,E死也没调出来。明显是急了啊。今天晚上还要打一场,注意:别急,越急越调不出来,注意多测的清空,注意部分小细节的写法。1863E前面先DP最早的完成时间(看到DAG上这种问题大概应该直接想到DP吧)(本题中......
  • 测试大纲
    1.无输入测试预期结果:显示错误,需要选择检测文件测试结果:2.gets输入溢出到相邻变量预期结果:检测出溢出到相邻变量测试结果:3.gets输入溢出到保存的基指针中预期结果:检测出溢出到保存的基指针中4.gets输入溢出超过返回地址预期结果:检测出溢出超过返回地址5.gets输入溢......
  • 去测试化≠测试失业
    写这篇文章的初衷,来自星球群里几位同学的聊天内容。有同学抛出了这样一个话题:微软和谷歌已经去测试化,将测试职位取消。随后这个话题就引起了好几位同学的讨论,就这个话题分别发表了很多不同的看法,主要集中于以下几点:测试工程师会面临失业;测试职位被取消,测试工作会由AI来执行;......
  • 软件测试实验二 | 白盒测试
    实验二白盒测试一、实验目的1、 掌握白盒测试的基础知识;2、 掌握白盒测试的检查内容及测试目的;3、 掌握黑盒测试的几种基本测试方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖、路径覆盖。二、实验要求1、 复习有关内容,理解白盒测试;2、 掌握语句覆盖、判......
  • 2024学习打卡学测试打基础乐在其中 积累--可以坚持
    2024学习打卡学测试打基础乐在其中 积累--可以坚持朋友的学习,就是记笔记,今天学了几课时,就写笔记,记录下来。然后第二天的时候,就看继续往后看课程。当日学习,当日总结。不要急于求成,这个比较难,今天反复看这一课,也要学明白。日日夜夜学习。别人的思维敏捷,源自于这个人这么长时间......
  • 初始MyBatis ,详细步骤运行第一个MyBatis程序,同时对应步骤MyBatis底层剖析
    1.初始MyBatis,详细步骤运行第一个MyBatis程序,同时对应步骤MyBatis底层剖析文章目录1.初始MyBatis,详细步骤运行第一个MyBatis程序,同时对应步骤MyBatis底层剖析每博一文案2.前沿知识2.1框架(framework)2.2三层架构2.3分析JDBC的缺点3.初始了解MyBatis4.MyBatis......
  • 50道题目!Python、SQL数据库、AB测试、业务分析、机器学习都在这里了!
    介绍每日一题系列已经更新了50道题目啦!题目难度为初级到中级,涵盖了Python、SQL数据库、AB测试、业务分析、机器学习五大主题,适合初学者和有一定基础的朋友。原文链接:50道题目!Python、SQL数据库、AB测试、业务分析、机器学习都在这里了!欢迎点击取阅!......
  • 三、Web自动化测试(3)
    一、PO模式v1:不使用任何设计模式和单元测试框架v2:使用pytest管理用例v3:使用方法封装的思想,对代码进行优化v4:采用PO模式的分层思想对代码进行拆分,分离pagev5:对PO分层后的代码继续优化,分离page中的元素和操作v6:PO模式深入封装,把共同操作提......