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();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/840932.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

csdn的insCode怎么用IDE和linux终端

1.进入insCode,选择工作台 找到我的项目,没有项目的话可以新建一个。 选择在IDE中编辑,界面如下: 右边有个终端,点击即可出现linux的xterm终端。

边用边充电影响寿命吗?看看计算机指令组成与操作类型

计算机指令集体系结构之指令 指令由操作码和地址码字段组成。 操作码指明了指令要完成的操作。 长度可以固定:比如RISC(reduced instruction set computer)精简指令集计算机 与之对应的RISC(复杂指令集计算机)&…

福昕PDF使用技巧

因为突然间学校的企业版WPS突然很多功能就不能使用了,所以转向福昕PDF。 一、合并文件 添加需要合并的文件,可以使用ctrla等方式全选 找到最上方的“合并文件” 二、文本注释

IDEA打开项目报错

IDEA打开项目报错: Cannot read scheme C:\Users\xxxxxx\AppData\Roaming\JetBrains\IntelliJIdea2023.2\qaplug_profiles\Default.xmljava.lang.AbstractMethodError: Receiver class com.soldevelo.qaplug.scanner.AnalysisProfileManager$2 does not define or i…

【讲解下PDM,PDM是什么?】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

【汽车之家注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 1. 暴力破解密码,造成用户信息泄露 2. 短信盗刷的安全问题,影响业务及导致用户投诉 3. 带来经济损失,尤其是后付费客户,风险巨大,造…

借助Kong记录接口的请求和响应内容

和APISIX类似,Kong也是一个Api GateWay。 运行在调用Api之前,以插件的扩展方式为Api提供管理, 如 鉴权、限流、监控、健康检查等. Kong是基于Lua语言、Nginx以及OpenResty开发的,拥有动态路由、负载均衡、高可用、高性能、熔断(基…

通过RAG架构LLM应用程序

在之前的博客文章中,我们已经描述了嵌入是如何工作的,以及RAG技术是什么。本节我们我们将使用 LangChain 库以及 RAG 和嵌入技术在 Python 中构建一个简单的 LLM 应用程序。 我们将使用 LangChain 库在 Python 中构建一个简单的 LLM 应用程序。LangChai…

自己手写一个单向链表【C风格】

//单链表 #include <iostream> #define MAX_SIZE 20 #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0typedef int ElemType;//元素的类型 typedef int Status;//返回状态typedef struct Node {ElemType data;//链表中保存的数据struct Node* next;//指向下…

【CSP CCF记录】201909-1 小明种苹果

题目 过程 #include<bits/stdc.h> using namespace std; int N,M; long long tree[1010]; int main() {cin>>N>>M;long long result0,max0;//result剩余苹果&#xff0c;max最大疏果个数 int id0;//id最大疏果的果树编号 for(int i1;i<N;i){long long b0…

[AIGC] CompletableFuture如何实现任务链式调用?

Java 中的 CompletableFuture 提供了多种方法来支持任务链式调用。这些方法允许你将一组操作链接在一起&#xff0c;形成一个任务链&#xff0c;每一个任务只有在上一个任务成功完成后才会被执行。现在&#xff0c;我们来看一下一些常用的链接任务的方法&#xff1a; thenAppl…

构建php环境

目录 php简介 官网php安装包 选择下载稳定版本 &#xff08;建议使用此版本&#xff0c;文章以此版本为例&#xff09; 安装php解析环境 准备工作 安装依赖 zlib-devel 和 libxml2-devel包。 安装扩展工具库 安装 libmcrypt 安装 mhash 安装mcrypt 安装php 选项含…

Gin框架学习笔记(六)——gin中的日志使用

gin内置日志组件的使用 前言 在之前我们要使用Gin框架定义路由的时候我们一般会使用Default方法来实现&#xff0c;我们来看一下他的实现&#xff1a; func Default(opts ...OptionFunc) *Engine {debugPrintWARNINGDefault()engine : New()engine.Use(Logger(), Recovery())…

glances的安装方式

1、 对于基于Debian的系统(如Ubuntu) 可以直接使用命令进行安装 sudo apt install glances2、对于基于Red Hat的系统(如CentOS) 安装EPEL仓库 yum install epel-release安装Glances yum install glances3、pip安装glances pip install glances glances网页管理服务bo…

uniapp微信小程序解决type=“nickname“获取昵称,v-model绑定值为空问题!

解决获取 type"nickname"值为空问题 文章目录 解决获取 type"nickname"值为空问题效果图Demo解决方式通过表单收集内容通过 uni.createSelectorQuery 效果图 开发工具效果图&#xff0c;真机上还会显示键盘输入框 Demo 如果通过 v-model 结合 blur 获取不…

【Linux】写时拷贝技术COW (copy-on-write)

文章目录 Linux写时拷贝技术(copy-on-write)进程的概念进程的定义进程和程序的区别PCB的内部构成 程序是如何被加载变成进程的&#xff1f;写时复制&#xff08;Copy-On-Write, COW&#xff09;写时复制机制的原理写时拷贝的场景 fork与COWvfork与fork Linux写时拷贝技术(copy-…

【IPD进阶】学习IPD流程,从黑话开始

目录 前言 概念一&#xff1a;基于市场的创新 概念二&#xff1a;结构化流程 概念三&#xff1a;管道管理 概念四&#xff1a;异步开发 概念五&#xff1a;CBB 作者简介 前言 学习一个新领域、一套新方法。 有一个很重要的点就是&#xff1a;要了解行业黑话。 你比如…

VUE3 学习笔记(十)查看vue版本

命令&#xff1a; npm list vue(空) (在项目的根目录下执行以下命令即可查看项目所使用的vue版本) npm list vue version(空) npm info vue (全局查看vue版本号&#xff0c;详细) npm list vue -g(全局查看vue版本号&#xff0c;简单) npm view vue version(查看项目依赖的vue…

开源博客项目Blog .NET Core源码学习(26:App.Hosting项目结构分析-14)

后台管理页面的系统管理下主要包括用户管理、角色管理、按钮管理和菜单管理&#xff0c;其中创建用户时要指定角色&#xff0c;创建角色时需指定菜单权限&#xff0c;按钮管理也是基于各菜单项进行设置&#xff0c;只有菜单管理相对独立&#xff0c;因此本文学习并分析App.Host…

蓝桥杯【第15届省赛】Python B组 32.60 分

F 题列表越界访问了……省一但没什么好名次 测评链接&#xff1a;https://www.dotcpp.com/oj/train/1120/ C 语言网真是 ** 测评&#xff0c;时间限制和考试的不一样&#xff0c;E 题给我整时间超限&#xff1f; A&#xff1a;穿越时空之门 100&#x1f3c6; 【问题描述】 随…