myBatis-CRUD

上接入门案例(看之前的《mybatis基本介绍及入门案例》篇)

1、映射接口


public interface MonsterMapper {//添加方法public void addMonster(Monster monster);public void delMonster(Integer monster_id);public  void updateMonster(Monster monster);public Monster findById(Integer monster_id);public List<Monster> findAllMonster();
}

2、映射文件

<mapper namespace="com.bin.mybatis.mapper.MonsterMapper"><insert id="addMonster" parameterType="com.bin.mybatis.entity.Monster">INSERT INTO mybatis_monster_ (monster_id,age,birthday,email,gender,name,salary)VALUES (#{monster_id},#{age},#{birthday},#{email},#{gender},#{name},#{salary})</insert><delete id="delMonster" parameterType="Integer">DELETE FROM mybatis_monster_ WHERE monster_id=#{monster_id}</delete><update id="updateMonster" parameterType="com.bin.mybatis.entity.Monster">UPDATE mybatis_monster_ SET age=#{age},birthday=#{birthday},email=#{email},gender=#{gender},name=#{name},salary=#{salary}WHERE monster_id=#{monster_id}</update><select id="findById" parameterType="Integer" resultType="com.bin.mybatis.entity.Monster">SELECT * FROM mybatis_monster_ WHERE monster_id=#{monster_id}</select><select id="findAllMonster" resultType="com.bin.mybatis.entity.Monster">SELECT * FROM mybatis_monster_</select>
</mapper>

3、JUNIT测试


import com.bin.mybatis.entity.Monster;
import com.bin.mybatis.mapper.MonsterMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;import java.io.InputStream;
import java.util.Date;
import java.util.List;public class testMybatis {private SqlSessionFactory sqlSessionFactory;private SqlSession session;private MonsterMapper monsterMapper;@Beforepublic void init() throws Exception{
//        得到myBatis-config.xml,转换成一个inputStreamInputStream inputStream = Resources.getResourceAsStream("myBatis-config.xml");sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);//通过sqlSessionFactory对象获取一个回话session = sqlSessionFactory.openSession();//通过session获取到 monsterMapper这个接口对象monsterMapper = session.getMapper(MonsterMapper.class);}@Testpublic void testAdd() {Monster monster = new Monster();for(int i=0;i<10;i++) {monster.setAge(100+i);monster.setBirthday(new Date());monster.setEmail("123@qq.com");monster.setGender(1);monster.setSalary(8928.00);monster.setName("银角"+i);monsterMapper.addMonster(monster);}}@Testpublic void testDel() {monsterMapper.delMonster(1);}@Testpublic void testUpdate() {Monster monster = new Monster();monster.setMonster_id(2);monster.setAge(200);monster.setBirthday(new Date());monster.setEmail("123@qq.com");monster.setGender(1);monster.setSalary(8928.00);monster.setName("牛魔怪");monsterMapper.updateMonster(monster);}@Testpublic void testFindById(){Monster monster = new Monster();monster = monsterMapper.findById(11);System.out.println(monster);}@Testpublic void testFindAllMonster () {List<Monster> allMonster = monsterMapper.findAllMonster();for (Monster monster: allMonster){System.out.println(monster);}}@Afterpublic void destory() throws Exception{if (session != null) {session.commit();session.close();}}
}

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

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

相关文章

软件测试/测试开发丨Python 虚拟环境及pip环境管理

venv 虚拟环境管理 venv 虚拟环境的优点 独立的 Python 环境&#xff0c;不会产生冲突有助于包的管理删除和卸载方便 venv 使用方法 创建虚拟环境 python3 -m venv test 激活虚拟环境 切换指定文件夹Windows&#xff1a;/Scripts/macOS&#xff1a;/bin/ 执行指令&#xff…

使用conda在Windows上建立虚拟环境

一&#xff1a;介绍 Conda是一个开源的软件包管理系统和环境管理系统&#xff0c;用于安装多个版本的软件包及其依赖关系&#xff0c;并在它们之间轻松切换。它适用于多种语言&#xff0c;如Python、R、Scala、Java、Javascript、C/ C和FORTRAN。Conda安装时默认随Miniconda或…

如何在 TypeScript 中定义类

在 TypeScript 中&#xff0c;你可以使用 class 关键字来定义一个类。下面是一个简单的示例&#xff0c;展示了如何定义一个名为 Person 的类&#xff1a; class Person {// 类的属性name: string;age: number;// 类的构造函数constructor(name: string, age: number) {this.n…

欢迎来到Web3.0的世界:Solidity智能合约安全漏洞分析

智能合约概述 智能合约是运行在区块链网络中的一段程序&#xff0c;经由多方机构自动执行预先设定的逻辑&#xff0c;程序执行后&#xff0c;网络上的最终状态将不可改变。智能合约本质上是传统合约的数字版本&#xff0c;由去中心化的计算机网络执行&#xff0c;而不是由政府…

深入探索Java中的UDP网络通信机制

在网络通信中&#xff0c;UDP&#xff08;User Datagram Protocol&#xff0c;用户数据报协议&#xff09;是一种无连接的协议&#xff0c;它在某些情况下比TCP更适合&#xff0c;尤其是在要求速度快、对数据准确性要求相对较低的场景下。本文将介绍如何使用Java进行UDP网络通信…

MIT 6.S081---Lab util: Unix utilities

环境搭建 基本环境 选择的是Vmwareubuntu的配置&#xff0c;注意ubuntu的版本一定要是20.04&#xff0c;作者试过16版本&#xff0c;不行&#xff0c;建议直接安装20.04版&#xff0c;不然环境配置都浪费不少时间有点得不偿失。&#xff08;Vmware可以用Virtualbox代替&#…

【消息中间件】Rabbitmq消息可靠性、持久化机制、各种消费

原文作者&#xff1a;我辈李想 版权声明&#xff1a;文章原创&#xff0c;转载时请务必加上原文超链接、作者信息和本声明。 文章目录 前言一、常见用法1.消息可靠性2.持久化机制3.消息积压批量消费&#xff1a;增加 prefetch 的数量,提高单次连接的消息数并发消费&#xff1a;…

门诊病历系统教程,社区诊所电子处方系统软件操作教程

一、软件程序问答 门诊病历系统教程&#xff0c;社区诊所电子处方系统软件操作教程 1、电子处方软件在开处方时候&#xff0c;可以一键导入模板吗&#xff1f; 如下图&#xff0c;软件以 佳易王诊所电子处方软件V17.1为例说明 软件右侧点击 配方模板&#xff0c;只需输入症…

从零开始学Python系列课程第17课:容器型数据类型之列表(上)

前言 列表算是 Python 中比较常用的一种容器型数据类型&#xff0c;那么什么是列表&#xff0c;列表有什么样的作用致使它在 Python 中这么受欢迎呢&#xff1f;这便是接下来我们要一起讨论的问题。 在不久之前我们讲过变量&#xff0c;我们将数据使用变量保存&#xff0c;但是…

08.哲说建造者模式(Builder Pattern)

“The odds that we’re in ‘base reality’ is one in billions.” —— Elon Musk 这段话出自马斯克在2016年的一次演讲&#xff0c;“人类活在真实世界的几率&#xff0c;可能不到十亿分之一”。此言一出&#xff0c;可谓一石激起千层浪。有人嘲讽马斯克是“语不惊人死不休…

[2024] 十大免费电脑数据恢复软件——轻松恢复电脑上已删除文件

哈喽大家好&#xff01;你有没有需要适用于电脑的免费数据恢复软件呢&#xff1f;数据丢失可是个烦心事&#xff0c;无论是硬件故障还是软件损坏&#xff0c;甚至是意外删除、格式化或计算机病毒&#xff0c;都让人郁闷至极。当你遇到数据丢失的情况时&#xff0c;你一定希望能…

rollup 源码解析 - watch 监听

文章目录 rollup watch 实现流程watchWatchEmitter 实现 watchInternalWatcher 管理整个 watch 阶段Task 运行任务FileWatcher 实现文件监听 rollup watch 实现流程 每一个配置了 watch 的配置项都会变成一个 Task 任务&#xff0c;每个任务通过 FileWatcher 即 chokidar 进行…

elasticsearch 索引数据多了怎么办,如何调优,部署

当Elasticsearch索引的数据量增加时&#xff0c;可能会遇到性能瓶颈&#xff0c;需要进行调优。以下是一些建议和步骤&#xff0c;可帮助你处理数据量增加的情况&#xff1a; 1. 硬件升级&#xff1a; 增加节点数或升级硬件&#xff0c;包括更快的CPU、更大的内存和更快的存储…

【Git】Git的基本操作

前言 Git是当前最主流的版本管理器&#xff0c;它可以控制电脑上的所有格式的文件。 它对于开发人员&#xff0c;可以管理项目中的源代码文档。&#xff08;可以记录不同提交的修改细节&#xff0c;并且任意跳转版本&#xff09; 本篇博客基于最近对Git的学习&#xff0c;简单介…

JavaScript 基础学习笔记(二):数据类型、数值类型、字符串类型、布尔类型、undefined、类型转换、隐式转换、显式转换、Number

目录 一、数据类型 1.1 数值类型 1.2 字符串类型 1.3 布尔类型 1.4 undefined 二、类型转换 2.1 隐式转换 2.2 显式转换 2.3 Number 一、数据类型 计算机程序可以处理大量的数据&#xff0c;为了方便数据的管理&#xff0c;将数据分成了不同的类型&#xff1a; 注&a…

Python中的用户交互函数详解,提升用户体验!

更多Python学习内容&#xff1a;ipengtao.com 用户进行交互的Python应用程序&#xff0c;有许多常用的用户交互函数可以帮助创建更具吸引力和友好的用户界面。本文将介绍一些常用的Python用户交互函数&#xff0c;并提供详细的示例代码&#xff0c;以帮助大家更好地理解它们的用…

右键添加 idea 打开功能

1.开始运行regedit 2.找到: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell _3.开始设置 一、右键shell目录新建项Idea二、右键Idea新建command三、选择Idea 右侧空白出新建字符串 名字为Icon 值填入idea的运行程序地址 四、选择command 默认项填入idea的运行程序地址…

技术探秘:在RISC Zero中验证FHE——RISC Zero应用的DevOps(2)

1. 引言 前序博客&#xff1a; 技术探秘&#xff1a;在RISC Zero中验证FHE——由隐藏到证明&#xff1a;FHE验证的ZK路径&#xff08;1&#xff09; 技术探秘&#xff1a;在RISC Zero中验证FHE——由隐藏到证明&#xff1a;FHE验证的ZK路径&#xff08;1&#xff09; 中&…

项目中cesium使用方法

cesium方法整理 一、安装依赖 // 安装cesium npm install cesium --save // 安装turf工具 npm install truf/turf --save // 安装cesium vite插件 npm install vite-plugin-cesim --save 二、项目中引用 import * as Cesium from cesium import cesium/Build/Cesium/Widget…

【privateGPT】使用privateGPT训练您自己的LLM

了解如何在不向提供商公开您的私人数据的情况下训练您自己的语言模型 使用OpenAI的ChatGPT等公共人工智能服务的主要担忧之一是将您的私人数据暴露给提供商的风险。对于商业用途&#xff0c;这仍然是考虑采用人工智能技术的公司最大的担忧。 很多时候&#xff0c;你想创建自己…