*Javaweb -- MyBatis*

一:介绍:

        1.MyBatis是一个优秀的  ①'持久层'  ②'框架',用于简化JDBC的开发!

①:JAVAEE有三层的结构:表现层, 业务层, 持久层.  表现层代表的是页面的展示,业务层则指的是对于相关逻辑的处理, 而持久层, 指的则是对于数据进行持久化,保存在数据库当中.   持久层具体的来说就是负责将已经编写过的数据保存到数据库当中的一层代码

②而框架,我们也可以理解成一个模板,也就是一个半成品,我们在完成一些程序的时候可以以其作为模板进行套用, 在此的基础上进行一些'修饰'  '增加'等等......是一套可重用的,通用的,软件基础代码模型.   同时,使用框架,也让我们的工作事半功倍,让编写程序变得更加的高效,规范,通用,在此基础之上,我们也可以进行相应的扩展,也就是扩展性

        2.具体的简化方式:

        1<针对于硬编码的问题:在JDBC上①注册驱动 ②获取连接   我们可以通过使用MYBATIS将其写在一个配置文件当中

        2>针对操作的繁琐:在JDBC上①手动设置参数 ②手动的对于结果集进行封装以及输出   通过使用MYBATIS我们可以实现将其自动化完成

二:MyBatis的入门操作:

        1.在数据库当中准备好表,基础的数据

        2.在IDE当中创建好MAVEN的相关项目

        3.打开pom,导入坐标  创建好模块

        第一次导入坐标,我们可以先进入mybits的官网当中的入门进行相关操作即可,连接奉上

入门_MyBatis中文网入门_MyBatis中文网

        1.导入各种需要的依赖(mybits,日志等等.....)

<dependencies><dependency><!-- mybatis的依赖导入--><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.28</version></dependency><!-- junit 单元测试--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><!-- 添加日志logback-classis依赖--><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.3.12</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>1.3.12</version></dependency></dependencies>

        2>在score的文件下添加mybits的相关配置文件,记得提前添加,不要忘记了

<?xml version="1.0" encoding="UTF-8"?><!-- 配置文件修改时重新加载,默认true -->
<configuration scan="true"><!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--><property name="CATALINA_BASE" value="**/logs"></property><!-- 控制台输出 --><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><encoder charset="UTF-8"><!-- 输出日志记录格式 --><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- 第一个文件输出,每天产生一个文件 --><appender name="FILE1" class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 输出文件路径+文件名 --><fileNamePattern>${CATALINA_BASE}/aa.%d{yyyyMMdd}.log</fileNamePattern><!-- 保存30天的日志 --><maxHistory>30</maxHistory></rollingPolicy><encoder charset="UTF-8"><!-- 输出日志记录格式 --><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- 第二个文件输出,每天产生一个文件 --><appender name="FILE2" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${CATALINA_BASE}/bb.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${CATALINA_BASE}/bb.%d{yyyyMMdd}.log</fileNamePattern><maxHistory>30</maxHistory></rollingPolicy><encoder charset="UTF-8"><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><appender name="CUSTOM" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${CATALINA_BASE}/custom.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- daily rollover --><fileNamePattern>${CATALINA_BASE}/custom.%d{yyyy-MM-dd}.log</fileNamePattern><!-- keep 30 days' worth of history --><maxHistory>30</maxHistory></rollingPolicy><encoder charset="UTF-8"><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- 设置日志输出级别 --><root level="ERROR"><appender-ref ref="CONSOLE" /></root><logger name="file1" level="DEBUG"><appender-ref ref="FILE1" /></logger><logger name="file1" level="INFO"><appender-ref ref="FILE2" /></logger><!-- 自定义logger --><logger name="custom" level="INFO"><appender-ref ref="CUSTOM" /></logger>
</configuration>

        将其以xml文件的方式放在resources当中即可

        4.编写MyBits的核心配置文件

        编写xml配置文件,将其放置在rescores当中即可

<?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"><!--连接数据库的信息-->   将内部改为com.mysql.jdbc.driver即可<property name="driver" value="${driver}"/>在这里添加上本机的编号,以及要使用的数据库的名称<property name="url" value="${url}"/><property name="username" value="${username}"/><property name="password" value="${password}"/></dataSource></environment></environments><mappers>加载相应的sql映射文件  修改<mapper resource="org/mybatis/example/BlogMapper.xml"/></mappers>
</configuration>

        5.创建sql映射文件

        设置xml配置文件,添加到rescores当中

        

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">设置空间名称<mapper namespace="test">设置查询的id  以及返回值的类型<select id="selectAll" resultType="com.itheima.pojo.User">写入指定数据库当中的指定表格的查询语句select * from tb_user;</select></mapper>

        在加载完成之后,我们需要对于之前的sql映射文件的地址值进行修改,修改为当前sql映射文件名称即可

<?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.jdbc.Driver"/><property name="url" value="jdbc:mysql:///mybatis?useSSL=false"/><property name="username" value="root"/><property name="password" value="123456"/></dataSource></environment></environments><mappers><!--加载SQL的映射文件--><mapper resource="UserMapepr.xml"/></mappers>
</configuration>

        6.编码

        1.设置数据库当中具体表的一些属性,创建User

        2.设置User的测试类,加载sqlSessionFactory核心配置

        3.获取sqlsession对象,并且执行相应的SQL语句

        4.释放资源

        // 1.加载MYBITS的核心文件,获取SqlSessionFactoryString resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);//2.获取SqlSession对象,从而来执行sqlSqlSession sqlSession = sqlSessionFactory.openSession();//执行SQL//在这里填入SQL标签即可,以及空间名称List<User> users = sqlSession.selectList("test.selectAll");System.out.println(users);//4.释放资源sqlSession.close();

                                                        感谢观看!OVER

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

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

相关文章

数字孪生+工业互联网标识解析,打造智能工厂新标杆!

当前&#xff0c;工业4.0浪潮愈发澎湃&#xff0c;加快数字化、网络化、智能化发展成为了制造业转型升级的必然要求。 51WORLD基于数字孪生技术与工业互联网标识解析体系&#xff0c;打造了一个集协同化供应、个性化定制、智能化生产于一体的全连接产线孪生平台&#xff08;以…

antv L7结合高德地图使用dome1

antv L7结合高德地图使用 一、设置底图二 、添加antv L7 中要使用的dome1. 安装L7 依赖2. 使用的dome 、以下使用的是浮动功能3. 运行后显示 自定义样式修改1. 设置整个中国地图浮动起来 自定义标注点1. 静态标注点2. 动态标注点&#xff08;点位置需要自己改&#xff09;3. 完…

Python笔记:函数

Python函数定义规则&#xff1a; 函数代码块以def关键词开头&#xff0c;后接函数标识符名称和圆括号()。任何传入参数和自变量必须放在圆括号中间&#xff0c;圆括号之间可以用于定义参数。return [表达式] 结束函数&#xff0c;选择性地返回一个值给调用方&#xff0c;不带表…

Windows系统中安装docker及镜像加速的配置

文章目录 一.安装wsl二.下载docker desktop三.更换Docker镜像引用出处 一.安装wsl 在安装wsl之前&#xff0c;先在Windows中配置WSL环境,步骤很简单&#xff0c;按照以下文章进行 Windows10/11配置WSL(Ubuntu)环境 以管理员身份打开Windows PowerShell&#xff0c;执行以下命…

模型驱动架构MDA

MDE 模型驱动工程&#xff08;MDE, Model-Driven Engineering&#xff09;是软件工程的一个分支&#xff0c;它将模型与建模拓展到软件开发的所有方面&#xff0c;形成一个多维建模空间&#xff0c;从而将工程活动建立在这些模型的映射和转换之上。[1] MDE的基本原则是将模型视…

2.Windows平台Python的下载、安装和配置环境变量——跟老吕学Python编程

2.Windows平台Python的下载、安装和配置环境变量——跟老吕学Python编程 一、下载Windows版Python1.Python官网2.Windows版Python下载网址 二、在Windows安装Python1.全自动安装Python&#xff08;不推荐&#xff09;1.1 启动安装1.2 安装进度1.3 安装完成1.4 查看版本 2.自定义…

【GO】HTTP标准库1 - http协议基础知识

目录 一 http协议 1 http协议 2 http request 3 请求方法 4 URL 5 协议版本 6 请求头 7 Content-type 9 POST与GET区别 10 HTTP Response 11 常见的状态与话术 12 HTTP 响应头 13 完整的HTTP响应 14 HTTPS 一 http协议 1 http协议 HTTP&#xff08;HyperText Tra…

Kubeadm部署K8s

Kubeadm部署K8s 集群规划&#xff1a; Master节点规划: Node节点规划: 安装要求 在开始之前&#xff0c;部署Kubernetes集群机器需要满足以下几个条件&#xff1a; 操作系统 CentOS7.x-86_x64 硬件配置&#xff1a;2GB或更多RAM&#xff0c;2个CPU或更多CPU&#xff0c;硬盘…

CANopen转Profinet网关连接西门子PLC与变流器通讯

CANopen转Profinet网关&#xff08;XD-COPNm20&#xff09;在智能领域&#xff0c;变流器的应用非常广泛&#xff0c;变流器一般会采用CANopen协议。现场采用台达的变流器&#xff08;支持CANopen协议&#xff09;作为CANopen从站&#xff0c;S7-1500系列PLC做主站&#xff0c;…

表单进阶(3)-上传文件和隐藏字段

上传文件&#xff1a;<input type"file"> 隐藏字段&#xff1a;<input type"hidden" name"" id"" value"带给后端的信息"> 禁用disabled&#xff1a;<button disabled"disabled">注册</bu…

蓝牙系列七:开源蓝牙协议栈BTStack数据处理(Wireshark抓包分析)

继续蓝牙系列的研究。 在上篇博客&#xff0c;通过阅读BTStack的源码&#xff0c;大体了解了其框架&#xff0c;对于任何一个BTStack的应用程序都有一个main函数&#xff0c;这个main函数是统一的。这个main函数做了某些初始化之后&#xff0c;最终会调用到应用程序提供的btst…

【嵌入式】嵌入式系统稳定性建设:最后的防线

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟。提供嵌入式方向的学习指导、简历面…

一文带你了解MySQL之B+树索引的原理

前言 学完前面我们讲解了InnoDB数据页的7个组成部分&#xff0c;知道了各个数据页可以组成一个双向链表&#xff0c;而每个数据页中的记录会按照主键值从小到大的顺序组成一个单向链表&#xff0c;每个数据页都会为存储在它里边儿的记录生成一个页目录&#xff0c;在通过主键查…

蓝桥杯真题讲解:子矩阵(二维滑动窗口)

蓝桥杯真题讲解&#xff1a;子矩阵&#xff08;二维滑动窗口&#xff09; 一、视频讲解二、正解代码 一、视频讲解 蓝桥杯真题讲解&#xff1a;子矩阵&#xff08;二维滑动窗口&#xff09; 二、正解代码 //二维单调队列 #include<bits/stdc.h> #define endl \n #def…

MapBox添加带箭头的轨迹线

效果&#xff1a; // 轨迹线 export const MAP_PATH_LINE (values, layerId) > {// 箭头-右var svgXML <svg viewBox"0 0 1024 1024" xmlns"http://www.w3.org/2000/svg"> <path d"M529.6128 512L239.9232 222.4128 384.7168 77.5168…

成都爱尔林江院长解析巩膜镜是什么?它适合哪些人群

巩膜镜&#xff0c;全称为硬性透氧性巩膜接触镜&#xff0c;它有着特殊设计&#xff0c;大直径镜片像桥梁一样呈拱形覆盖角膜及角巩膜缘&#xff0c;从角膜上方横跨而过完全无接触、无任何机械性摩擦&#xff0c;最终贴合于巩膜。 巩膜镜的作用原理 光学成像&#xff1a; 配戴…

嵌入式物联网项目实战-STM32F103实现外部中断EXIT事件(物联技术666)

EXIT中断测试 功能描述 外部中断/事件控制器由19个产生事件/中断要求的边沿检测器组成。每个输入线可以独立地配置输入类型&#xff08;脉冲或挂起&#xff09;和对应的触发事件&#xff08;上升沿或下降沿或者双边沿触发&#xff09;。每个输入线都可以被独立的屏蔽。挂起寄…

Unity L屏幕实现方式(已抛弃)

效果 右侧主要的参数&#xff1a;Line参数能够调整中间线的高度&#xff0c;PointXY能够调整整个下方弯曲图像的比例。 使用的是RenderTexture填充RawImage显示的方式&#xff0c;需要将一张RenderTexture设置位摄像机的输出内容。 ShaderGraph 由于这个采用了一定的数学模型…

HarmonyOS NEXT应用开发之多层嵌套类对象监听

介绍 本示例介绍使用Observed装饰器和ObjectLink装饰器来实现多层嵌套类对象属性变化的监听。 效果图预览 使用说明 加载完成后显示商品列表&#xff0c;点击刷新按钮可以刷新商品图片和价格。 实现思路 创建FistGoodsModel类&#xff0c;类对象是用Observed修饰的类Secon…

【C++】手把手教你模拟实现 list

目录 前提&#xff1a;list 的基本介绍 一、构造/析构/拷贝/赋值 1、构造函数 2、析构函数 3、拷贝构造函数 4、赋值 二、修改操作 1、push_back 2、insert 3、erase 4、clear 三、list iterator 的使用 1、operator * 2、operator 3、operator -- 4、operator &…