使用Mybatis实现基本的增删改查------数据输入

创建一个空的Maven项目,删去src,用作存储pom的父项目

pom中存放下列依赖:

    <dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.11</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.46</version></dependency></dependencies>

 创建Module在pom中加入测试依赖

    <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency></dependencies>

 创建数据库

CREATE TABLE student(
stuID INTEGER NOT NULL,
stuName VARCHAR(20),
stuSalary DECIMAL(10,3) 
)

 创建实体类

package su.Entity;/*** @author haustsusu* @create 2023-09-08-19:12*/
public class Student {private Integer stuId;private String stuName;private Double stuSalary;public Student() {}public Student(Integer stuId, String stuName, Double stuSalary) {this.stuId = stuId;this.stuName = stuName;this.stuSalary = stuSalary;}public Integer getStuId() {return stuId;}public void setStuId(Integer stuId) {this.stuId = stuId;}public String getStuName() {return stuName;}public void setStuName(String stuName) {this.stuName = stuName;}public Double getStuSalary() {return stuSalary;}public void setStuSalary(Double stuSalary) {this.stuSalary = stuSalary;}@Overridepublic String toString() {return "Student{" +"stuId=" + stuId +", stuName='" + stuName + '\'' +", stuSalary=" + stuSalary +'}';}
}

 创建Mybatis框架需要创建Mapper.xml,Mapper接口,MybatisConfig配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!--    引入jdbc.properties--><properties resource="jdbc.properties"></properties><settings><setting name="logImpl" value="STDOUT_LOGGING"/></settings><environments default="development">
<!--        表示配置Mybatis的一个具体环境--><environment id="development">
<!--            mybatis内置的事务管理器--><transactionManager type="JDBC"/>
<!--            配置数据源--><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></dataSource></environment></environments><!--     而 mappers 标签就是用来配置需要加载的 sql 映射配置文件路径的--><mappers><mapper resource="StudentMapper.xml"/></mappers>
</configuration>

 Mapper接口

public interface stuMapper {List<Student> QueryStudents();Student QueryStudent(Integer Id);}

Mybatis配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!--    引入jdbc.properties--><properties resource="jdbc.properties"></properties><settings><setting name="logImpl" value="STDOUT_LOGGING"/></settings><environments default="development">
<!--        表示配置Mybatis的一个具体环境--><environment id="development">
<!--            mybatis内置的事务管理器--><transactionManager type="JDBC"/>
<!--            配置数据源--><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></dataSource></environment></environments><!--     而 mappers 标签就是用来配置需要加载的 sql 映射配置文件路径的--><mappers><mapper resource="StudentMapper.xml"/></mappers>
</configuration>

最后在测试类中运行

public class StudentTest {@Testpublic void test01() throws IOException {//1.读取外部配置文件,获取一个输入流InputStream resourceAsStream = Resources.getResourceAsStream("MybatisConfig.xml");//2.创建sqlSessionFactory对象SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);//3.获取Sqlsession对象[自动开启JDBC]SqlSession sqlSession = sqlSessionFactory.openSession();//4.获取代理mapper对象stuMapper mapper = sqlSession.getMapper(stuMapper.class);//执行查询所有学生的方法List<Student> students = (List<Student>) mapper.QueryStudents();//查询id学生的方法Student student = mapper.QueryStudent(10001);System.out.println("某个学生--------------------");System.out.println(student);System.out.println("某个学生--------------------");for (Student s:students){System.out.println(s);}//5.管理资源与提交事务sqlSession.close();}
}

结果:

E:\Java\jdk1.8.0_301\bin\java.exe -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:E:\IDEA\idea\IntelliJ IDEA 2020.1\lib\idea_rt.jar=8837:E:\IDEA\idea\IntelliJ IDEA 2020.1\bin" -Dfile.encoding=UTF-8 -classpath "E:\IDEA\idea\IntelliJ IDEA 2020.1\lib\idea_rt.jar;E:\IDEA\idea\IntelliJ IDEA 2020.1\plugins\junit\lib\junit5-rt.jar;E:\IDEA\idea\IntelliJ IDEA 2020.1\plugins\junit\lib\junit-rt.jar;E:\java\jdk1.8.0_301\jre\lib\charsets.jar;E:\java\jdk1.8.0_301\jre\lib\deploy.jar;E:\java\jdk1.8.0_301\jre\lib\ext\access-bridge-64.jar;E:\java\jdk1.8.0_301\jre\lib\ext\cldrdata.jar;E:\java\jdk1.8.0_301\jre\lib\ext\dnsns.jar;E:\java\jdk1.8.0_301\jre\lib\ext\jaccess.jar;E:\java\jdk1.8.0_301\jre\lib\ext\jfxrt.jar;E:\java\jdk1.8.0_301\jre\lib\ext\localedata.jar;E:\java\jdk1.8.0_301\jre\lib\ext\nashorn.jar;E:\java\jdk1.8.0_301\jre\lib\ext\sunec.jar;E:\java\jdk1.8.0_301\jre\lib\ext\sunjce_provider.jar;E:\java\jdk1.8.0_301\jre\lib\ext\sunmscapi.jar;E:\java\jdk1.8.0_301\jre\lib\ext\sunpkcs11.jar;E:\java\jdk1.8.0_301\jre\lib\ext\zipfs.jar;E:\java\jdk1.8.0_301\jre\lib\javaws.jar;E:\java\jdk1.8.0_301\jre\lib\jce.jar;E:\java\jdk1.8.0_301\jre\lib\jfr.jar;E:\java\jdk1.8.0_301\jre\lib\jfxswt.jar;E:\java\jdk1.8.0_301\jre\lib\jsse.jar;E:\java\jdk1.8.0_301\jre\lib\management-agent.jar;E:\java\jdk1.8.0_301\jre\lib\plugin.jar;E:\java\jdk1.8.0_301\jre\lib\resources.jar;E:\java\jdk1.8.0_301\jre\lib\rt.jar;D:\SSM_MybatisOne\SSM_Mybatis_Student\target\test-classes;D:\SSM_MybatisOne\SSM_Mybatis_Student\target\classes;C:\Users\小苏\.m2\repository\junit\junit\4.13.2\junit-4.13.2.jar;C:\Users\小苏\.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\小苏\.m2\repository\org\mybatis\mybatis\3.5.11\mybatis-3.5.11.jar;C:\Users\小苏\.m2\repository\mysql\mysql-connector-java\5.1.46\mysql-connector-java-5.1.46.jar" com.intellij.rt.junit.JUnitStarter -ideVersion5 -junit4 StudentCRUDTest.StudentTest,test01
Logging initialized using 'class org.apache.ibatis.logging.stdout.StdOutImpl' adapter.
PooledDataSource forcefully closed/removed all connections.
PooledDataSource forcefully closed/removed all connections.
PooledDataSource forcefully closed/removed all connections.
PooledDataSource forcefully closed/removed all connections.
Opening JDBC Connection
Created connection 1909546776.
Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@71d15f18]
==>  Preparing: select stuID stuId,stuName stuName,stuSalary stuSalary from student
==> Parameters: 
<==    Columns: stuId, stuName, stuSalary
<==        Row: 10001, 苏宝全, 2000.365
<==        Row: 10002, 苏风严, 3000.451
<==      Total: 2
==>  Preparing: select stuID stuId,stuName stuName,stuSalary stuSalary from student where stuId=?
==> Parameters: 10001(Integer)
<==    Columns: stuId, stuName, stuSalary
<==        Row: 10001, 苏宝全, 2000.365
<==      Total: 1
某个学生--------------------
Student{stuId=10001, stuName='苏宝全', stuSalary=2000.365}
某个学生--------------------
Student{stuId=10001, stuName='苏宝全', stuSalary=2000.365}
Student{stuId=10002, stuName='苏风严', stuSalary=3000.451}
Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@71d15f18]
Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@71d15f18]
Returned connection 1909546776 to pool.Process finished with exit code 0

 

场景一:传入单个数据:(数据名可以随意写,但不建议)

场景二:传入一个实体对象

场景三:传入多个简单类型

 

 mapper接口中的方法不能出现重载,重载会导致在Mapper.xml中无法根据id查找到对应的接口方法

 

场景四:传入Map

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

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

相关文章

【MongoDB】Ubuntu22.04 下安装 MongoDB | 用户权限认证 | skynet.db.mongo 模块使用

文章目录 Ubuntu 22.04 安装 MongoDB后台启动 MongoDBshell 连入 MongoDB 服务 MongoDB 用户权限认证创建 root 用户开启认证重启 MongoDB 服务创建其他用户查看用户信息验证用户权限删除用户 skynet.db.mongo 模块使用authensureIndexfind、findOneinsert、safe_insertdelete、…

在自定义数据集上实现OpenAI CLIP

在2021年1月&#xff0c;OpenAI宣布了两个新模型:DALL-E和CLIP&#xff0c;它们都是以某种方式连接文本和图像的多模态模型。CLIP全称是Contrastive Language–Image Pre-training&#xff0c;一种基于对比文本-图像对的预训练方法。为什么要介绍CLIP呢&#xff1f;因为现在大火…

【C#】关于Array.Copy 和 GC

关于Array.Copy 和 GC //一个简单的 数组copy 什么情况下会触发GC呢[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]public static void Copy(Array sourceArray,long sourceIndex,Array destinationArray,long destinationIndex,long length);当源和目…

浅析Open vSwitch数据结构:哈希表hmap/smap/shash

文章目录 概述hmaphmap数据结构初始化hmap插入节点扩展hmap空间resize函数 删除节点遍历所有节点辅助函数hmap_first辅助函数hmap_next smapsmap数据结构插入节点删除节点查找节点遍历所有节点 shashshash数据结构插入节点删除节点查找节点遍历所有节点 概述 在OVS软件中&…

【网络安全带你练爬虫-100练】第23练:文件内容的删除+写入

目录 0x00 前言&#xff1a; 0x02 解决&#xff1a; 0x00 前言&#xff1a; 本篇博文可能会有一点点的超级呆 0x02 解决&#xff1a; 你是不是也会想&#xff1a; 使用pyrhon将指定文件夹位置里面的1.txt中数据全部删除以后---->然后再将参数req_text的值写入到1.txt …

rsa加密解密java和C#互通

前言 因为第三方项目是java的案例&#xff0c;但是原来的项目使用的是java&#xff0c;故需要将java代码转化为C#代码&#xff0c;其中核心代码就是RSA加密以及加签和验签&#xff0c;其他的都是api接口请求难度不大。 遇到的问题 java和c#密钥格式不一致&#xff0c;java使…

LeetCode(力扣)491. 递增子序列Python

LeetCode491. 递增子序列 题目链接代码 题目链接 https://leetcode.cn/problems/non-decreasing-subsequences/ 代码 class Solution:def backtracking(self, nums, index, result, path):if len(path) > 1:result.append(path[:])uset set()for i in range(index, len…

分类预测 | Matlab实现基于LFDA-SVM局部费歇尔判别数据降维结合支持向量机的多输入分类预测

分类预测 | Matlab实现基于LFDA-SVM局部费歇尔判别数据降维结合支持向量机的多输入分类预测 目录 分类预测 | Matlab实现基于LFDA-SVM局部费歇尔判别数据降维结合支持向量机的多输入分类预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 基于局部费歇尔判别数据降维的L…

日常开发小汇总(5)元素跟随鼠标移动(在视口下移动)

<div class"mark"><h1>title</h1><div><p>title 鼠标移动 盒子整体移动</p><p>test</p><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Modi, porro.</p></div></div>cons…

springboot MongoDB 主从 多数据源

上一篇&#xff0c;我写了关于用一个map管理mongodb多个数据源&#xff08;每个数据源&#xff0c;只有单例&#xff09;的内容。 springboot mongodb 配置多数据源 临到部署到阿里云的测试环境&#xff0c;发现还需要考虑一下主从的问题&#xff0c;阿里云买的数据库&#x…

入门力扣自学笔记279 C++ (题目编号:1123)

1123. 最深叶节点的最近公共祖先 题目&#xff1a; 给你一个有根节点 root 的二叉树&#xff0c;返回它 最深的叶节点的最近公共祖先 。 回想一下&#xff1a; 叶节点 是二叉树中没有子节点的节点树的根节点的 深度 为 0&#xff0c;如果某一节点的深度为 d&#xff0c;那它…

【Flutter】引入网络图片时,提示:Failed host lookup: ‘[图片host]‘

在使用 NetworkImage 组件加载外部图片时&#xff0c;提示 Failed host lookup: [图片host] 错误。 排查方向 1、清理缓存 解决方案&#xff1a; 尝试flutter clean清空缓存后重新安装依赖flutter pub get重新构建项目flutter create . 走完上述三个步骤后&#xff0c;再次…

MySql学习笔记11——DBA命令介绍

DBA命令 数据导入 要进入Mysql 创建数据库 create database database_name;使用数据库 use database_name;初始化数据库 source .sql文件地址&#xff0c;不能加双引号&#xff1b;数据导出 要在windows的dos环境下进行 导出数据库 mysqldump database_name > 存放…

Android 文字转语音播放实现

1&#xff0c;TextToSpeech类是android自带的&#xff0c;但是部分设备需要支持TTS需要增加语音库&#xff0c;我使用的是讯飞语音&#xff08;离线的哦&#xff09;。请自行下载并安装讯飞语音APK&#xff0c;然后到系统设置中设置TTS功能默认使用该选项。有自带TTS库的可以省…

《存储IO路径》专题:块设备层多队列blk-mq架构

我们想象一下&#xff0c;你是一个餐厅的厨师&#xff0c;你要准备很多不同的菜肴&#xff0c;而每种菜肴需要不同的食材和烹饪时间。如果每道菜都按照需要的顺序来准备&#xff0c;那么你的工作效率一定会非常低。为了提高效率&#xff0c;你会怎么做呢&#xff1f; 在linux架…

基于SSM的家政服务网站

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

windows 下载安装 mysql

windows 下载安装 mysql 官网地址&#xff1a;https://dev.mysql.com/ 下载地址&#xff1a;https://cdn.mysql.com//Downloads/MySQLInstaller/mysql-installer-community-8.0.34.0.msi 点击 Downloads 点击 MySQL Community (GPL) Downloads 点击 MySQL Installer for Window…

usb学习笔记

框架 usb 驱动是基于usb core 的&#xff0c;设备插上之后&#xff0c;host 层自然会进行识别&#xff0c;设备驱动通过core层的接口操作设备&#xff0c;而不用直接面对usb硬件。对于应用层需要封装成一个usb 的设备。 驱动是基于urb 数据进行操作的。 49 static void usb_mo…

Windows环境下Springboot3+Graalvm+Idea 打包成原生镜像 踩坑

https://github.com/oracle/graal/https://github.com/graalvm/graalvm-ce-builds/releases/对应关系graalvm-ce-java17-windows-amd64-X.X.X.zipnative-image-installable-svm-java17-windows-amd64-X.X.X.jar本人使用:graalvm-ce-java17-windows-amd64-23.0.1.zipnative-imag…

第4章_瑞萨MCU零基础入门系列教程之瑞萨 MCU 源码设计规范

本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写&#xff0c;需要的同学可以在这里获取&#xff1a; https://item.taobao.com/item.htm?id728461040949 配套资料获取&#xff1a;https://renesas-docs.100ask.net 瑞萨MCU零基础入门系列教程汇总&#xff1a; ht…