MyBatis学习一:快速入门

前言

公司要求没办法,前端也要了解一下后端知识,这里记录一下自己的学习

学习教程:黑马mybatis教程全套视频教程,2天Mybatis框架从入门到精通

文档:
https://mybatis.net.cn/index.html

MyBatis

快速入门:查询user表中所有数据

  • 创建user表,添加数据
  • 创建模块,导入坐标
  • 编写mybatis核心配置文件 ---->替换连接信息,解决硬编码问题
  • 编写sql映射文件—> 统一管理sql语句,解决硬编码问题
  • 编码
    • 定义POJO类,对应数据库的表
    • 加载核心配置文件,获取SqlSessionFactory对象
    • 获取SQLSession对象,执行sql语句
    • 释放资源

创建模块

创建模块
File - > New -> Module
在这里插入图片描述
在这里插入图片描述
导入坐标
pom.xml

<dependencies><!--mybatis依赖--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.9</version></dependency><!--mysql驱动依赖--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.31</version></dependency><!-- junit 单元测试 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency><!-- slf4j 日志   --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.30</version></dependency><!-- logback 日志 --><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>1.2.3</version></dependency></dependencies>

src/main/resources/logback.xml

 <?xml version="1.0" encoding="UTF-8"?>
<configuration><!--    console表示当前日志信息是可以输出到控制台的--><appender name="Console" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%level】  %cyan(%thread】) %boldGreen(%logger{15}) - %msg %n</pattern></encoder></appender><logger name="com.Carter_x" level="DEBUG" additivity="false"><appender-ref ref="Console"/></logger>
</configuration>

核心配置文件
src/main/resources/mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><!-- 数据库连接信息--><property name="driver" value="com.mysql.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/test"/><property name="username" value="root"/><property name="password" value="123456"/></dataSource></environment></environments><mappers><mapper resource="org/mybatis/example/BlogMapper.xml"/></mappers>
</configuration>

sql映射文件
src/main/resources/UserMapper.xml,表示是来操作user表的sql映射文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!--
namespace: 命名空间
resultType:返回值的类型,一般是实体类
id:唯一标识
-->
<mapper namespace="test"><select id="selectAllUser" resultType="com.example.pojo.User">select * from user;</select>
</mapper>

src/main/java下创建对于的实体类

package com.example.pojo;public class User {
}

在这里插入图片描述
修改mybatis-config.xml文件,指定刚才创建的sql映射文件

<mappers><!-- 加载sql映射文件--><mapper resource="userMapper.xml"/>
</mappers>

编码

修改之前创建的User类,类的属性要与对应表里的字段对应

package com.example.pojo;public class User {private Integer id;private String name;private Integer age;private String email;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}@Overridepublic String toString() {return "User{" +"id=" + id +", name='" + name + '\'' +", age=" + age +", email='" + email + '\'' +'}';}}

编写测试类

编写一个测试类,用于测试代码

package org.example;import java.io.IOException;
import java.io.InputStream;
import java.util.List;import com.example.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class Main {public static void main(String[] args) throws IOException {// 1、加载mybatis的核心配置文件,获取SqlSessionFactory对象,下面的是从官网复制的String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 2、获取SqlSession对象SqlSession sqlSession = sqlSessionFactory.openSession();// 3、执行sql语句,查询所有数据// 指定要执行的sql语句,这里传入对应的标识,对应UserMapper.xml文件中<select id="selectAllUser" resultType="User">List<User> userList = sqlSession.selectList("test.selectAllUser");System.out.println(userList);System.out.println("数据总条数:" + userList.size());// 4、关闭资源sqlSession.close();}
}

执行结果
在这里插入图片描述

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

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

相关文章

Python内置库os和sys的常用方法汇总

更多Python学习内容&#xff1a;ipengtao.com Python是一门强大的编程语言&#xff0c;具有丰富的标准库&#xff0c;其中包括os和sys两个常用模块。os模块用于与操作系统交互&#xff0c;提供了许多文件和目录操作的方法&#xff0c;而sys模块用于与Python解释器进行交互&…

buildadmin实现多级关联下拉效果

文章目录 最终效果开始重新渲染组件编辑渲染完结 最终效果 开始 popupForm.vue代码 <FormItem :label"t(interior.interiorApply.interior_index_id)" type"remoteSelect"v-model"baTable.form.items!.interior_index_id" prop"interi…

算法练习Day25 (Leetcode/Python-贪心算法)

贪心算法基本概念&#xff1a; 贪心的本质是通过选取局部最优达到全局最优。 并没有固定的套路&#xff0c;检验的算法正确性的办法可以是举反例。 455. Assign Cookies Assume you are an awesome parent and want to give your children some cookies. But, you should gi…

GreenPlum-数据世界的绿洲

GreenPlum的介绍 Greenplum是一个基于开源PostgreSQL数据库系统的高性能、可扩展的大数据处理平台。它是由Pivotal Software&#xff08;现在是VMware的一部分&#xff09;开发并维护的。Greenplum的设计目标是处理大规模的数据集&#xff0c;提供高并发、高吞吐量的查询和分析…

AWS CDK安装到AWS EC2 Linux 2

文章目录 小结问题及解决安装NPM安装aws-cdk-lib找不到Python3 测试参考 小结 AWS CDK安装到AWS EC2 Linux 2&#xff0c;并记录过程。 问题及解决 安装NPM [ec2-userip-100-92-28-119 aws]$ sudo yum install npm Loaded plugins: priorities, update-motd, upgrade-helpe…

云计算:OpenStack 分布式架构部署(单控制节点与多计算节点)

目录 一、实验 1.环境 2. 计算服务安装(计算节点2) 3. 网络服务安装(计算节点2) 一、实验 1.环境 (1) 主机 表1 主机 主机架构IP备注controller控制节点192.168.204.210已部署compute01计算节点1192.168.204.211 已部署compute02计算节点2192.168.204.212 &#xff08;…

产品经理学习-从0-1搭建策略产品

从0-1搭建策略产品 目录&#xff1a; 回顾策略产品 如何从0-1搭建策略产品 回顾策略产品 之前也了解过从产品实施的角度来看&#xff0c;策略就是针对问题的解决方案&#xff0c;在互联网时代更集中体现在2个维度&#xff1a;业务场景和数据应用 如何从0-1搭建策略产品 我们…

positon emb(位置编码存在PAD)部分

Unk替换细节修改&#xff1a;若shuffle ratio1.0 &#xff08;1&#xff09;编码后的input_id: tensor([[ 101, 1996, 2006, 1996, 7195, 1997, 5409, 1011, 1011, 102], [ 101, 7842, 14194, 1997, 2100, 102, 0, 0, 0, 0], &#xff08;2&#xff09;对应的unk_mask: ten…

牛客周赛 Round 26 解题报告 | 珂学家 | 0-1 BFS + 状态机DP

前言 整体评价 T3是一道0-1 BFS题, 这样时间复杂度可以控制在O(n*m), 也可以用优先队列。 T4这类题型&#xff0c;在牛客Round周赛系列出现好多次了&#xff0c;要么状态机DP&#xff0c;要么容斥&#xff0c;如果n很大&#xff0c;就用矩阵幂优化。 欢迎关注 珂朵莉 牛客周…

MATLAB中xcorr函数用法

目录 语法 说明 示例 两个向量的互相关 向量的自相关 归一化的互相关 xcorr函数的功能是返回互相关关系。 语法 r xcorr(x,y) r xcorr(x) r xcorr(___,maxlag) r xcorr(___,scaleopt) [r,lags] xcorr(___) 说明 r xcorr(x,y) 返回两个离散时间序列的互相关。互相…

V8引擎-隐藏类

1、动态语言和静态语言 静态语言的效率更高 javaScript是一种动态语言&#xff0c;对象的属性在运行时可以被修改。因此&#xff0c;当V8使用一个对象时&#xff0c;比如使用start.x来访问对象start的属性x时&#xff0c;V8并不知道对象中是否存在x属性&#xff0c;也不知道x属…

【C Primer Plus第六版 学习笔记】 第十六章 C预处理器和C库

有基础&#xff0c;进阶用&#xff0c;个人查漏补缺 第十五章的内容之前学过&#xff0c;跳过 预处理之前&#xff0c;编译器必须对该程序进行一些翻译处理 首先把源代码中出现的字符映射到原字符集 其次编译器定位每个反斜杠后面跟着换行符的实例&#xff0c;并删除它们&…

在 Linux 系统中,常用的音频命令alsamixer、amixer、aplay、arecord

在 Linux 系统中&#xff0c;常用的音频命令主要包括以下几个&#xff1a; 1. alsamixer alsamixer 是一个交互式的音频混音控制台程序&#xff0c;它提供了对音量、通道、增益等设置的直观界面。 2. amixer amixer 命令用于管理音频设置&#xff0c;可以显示和调整音量、切换…

各种编程语言的特点及应用领域

1、C语言 特点&#xff1a;C语言是一种高效、快速、可移植、结构化的编程语言&#xff0c;具有广泛的应用领域。C语言不提供诸如面向对象编程&#xff08;OOP&#xff09;等高级语言所支持的抽象层次&#xff0c;但可以方便地访问底层硬件&#xff0c;因此常被用于系统编程和嵌…

一种安防场景下融合注意力机制和时空图卷积神经网络的人体动作识别方法与流程

本发明涉及模式识别与计算机视觉领域&#xff0c;尤其涉及一种安防场景下融合注意力机制和时空图卷积神经网络的人体动作识别方法。 背景技术&#xff1a; 视觉一直是人类获取外界信息的最重要、最直观的途径&#xff0c;据有关统计&#xff0c;人类获取信息的80&#xff05;都…

nginx 多端口部署多站点

目录 1.进行nginx.conf 2.复制粘贴 3.修改端口及站点根目录 4. 网站上传 1.进行nginx.conf 在 nginx 主要配置文件 nginx.conf 中&#xff0c;server 是负责一个网站配置的&#xff0c;我们想要多个端口访问的话&#xff0c;可以复制多个 server 先进入到 nginx.conf 中 …

「微服务」Saga 模式 如何使用微服务实现业务事务-第二部分

在上一篇文章中&#xff0c;我们看到了实现分布式事务的一些挑战&#xff0c;以及如何使用Event / Choreography方法实现Saga的模式。在本文中&#xff0c;我们将讨论如何通过使用另一种类型的Saga实现&#xff08;称为Command或Orchestration&#xff09;来解决一些问题&#…

vue3+echarts可视化——记录我的2023编程之旅

文章目录 ⭐前言⭐2023我在csdn的旅途痕迹&#x1f496;node系列文章&#x1f496;vue3系列文章&#x1f496;python系列文章&#x1f496;react系列文章&#x1f496;js拖拽相关文章&#x1f496;小程序系列文章&#x1f496;uniapp系列文章 ⭐可视化布局&#x1f496; git 数…

【VRTK】【VR开发】【Unity】18-VRTK与Unity UI控制的融合使用

课程配套学习项目源码资源下载 https://download.csdn.net/download/weixin_41697242/88485426?spm=1001.2014.3001.5503 【背景】 VRTK和Unity自身的UI控制包可以配合使用发挥效果。本篇就讨论这方面的实战内容。 之前可以互动的立体UI并不是传统的2D UI对象,在实际使用中…

MockServer简单使用记录

下载源码 下载git源码&#xff1a;git clone https://github.com/mock-server/mockserver.git 通过执行文件编译成jar包 ./mvnw clean package 可能会报错。 启动命令 java -jar ./mockserver-netty-jar-with-dependencies.jar -serverPort 1080 -proxyRemotePort 80 -pro…