框架——Mybatis(!!!MyBatis 环境搭建步骤)

news2024/12/23 12:35:08

目录

一、Mybatis 概述

1.背景

 2.简介

3.Mybatis 中文官网

二、MyBatis 环境搭建(超全!!!)

1.创建一张表和表对应的实体类 

2.导入 MyBatis jar包,mysql数据库驱动包 

3.创建 MyBatis全局配置文件

4. 在接口中定义方法 

5. 创建 sql 映射文件

6.配置sql映射文件 

7.测试 MyBatis

三、配置解析

1.事务管理方式

 2.数据库连接池配置

3.打印执行日志 

 4.为类型配置别名


一、Mybatis 概述

1.背景

Mybatis 原是Apache 的一个开源项目 iBatis , 2010年6月这个项目由Apache Software Foundation 迁移到了 Google Code ,随着开发团队转投Google Code 旗下, iBatis3.x正式更名为 MyBatis

 2.简介

•  MyBatis 是一款优秀的持久层框架。
•  MyBatis 避免了几乎所有的 JDBC 代码手动设置参数以及手动获取结果集的操作。
•  Mybatis 将基本的 JDBC 常用接口封装,对外提供操作即可。
•  MyBatis 可以使用 XML 或注解来配置和映射,将数据库中的记录映射成 Java 的 POJO(Plain Old Java Objects,普通的 Java 对象),是一种 ORM(ORM Object Relational Mapping 对象关系映射)实现。
•  MyBatis 支持动态 SQL 以及数据缓存。

3.Mybatis 中文官网

https://mybatis.org/mybatis-3/zh_CN/index.htmlicon-default.png?t=N7T8https://mybatis.org/mybatis-3/zh_CN/index.html

二、MyBatis 环境搭建(超全!!!)

1.创建一张表和表对应的实体类 

在mysql中创建一个名为admin的表,创建相关属性

 

插入一行数据,便于测试 

 

 在idea中新建一个Maven项目——mybatis

在java目录下创建一个包,在该包下创建类Admin

在类里创建四个属性,来封装数据(和数据库保持一致)

生成get,set方法(右键之后,选择Generate)

选择getter and setter

 

按住Ctrl键全选这四个属性 ,点击OK

这样就好啦! 

2.导入 MyBatis jar包,mysql数据库驱动包 

<!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.16</version>
        </dependency>
<!--mybatis-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId><version>3.4.2</version>
        </dependency>

复制MyBatis jar包和mysql jar包到 pom.xml文件里

这样就算配置好啦! 

3.创建 MyBatis全局配置文件

在resources(放置项目中的配置文件)中创建xml文件

命名为mybatis.xml文件

 将下面这段粘贴到mybatis.xml文件中

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//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="" />
            <property name="url" value="" />
            <property name="username" value="" />
            <property name="password" value=""/>
         </dataSource>
       </environment>
    </environments>
</configuration>

配置数据库连接的四个必要信息,把值填进去(之前在jdbc的,粘贴过来)

4. 在接口中定义方法 

创建一个dao包,在该包下创建AdminDao接口

在该接口中定义方法

5. 创建 sql 映射文件

在resources中创建mappers目录

 在mappers目录下,创建AdminMapper.xml文件

将下面这段粘贴到AdminMappear.xml文件中

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="接口地址">
    定义 sql 语句
</mapper>

 ​​​​​​配置接口地址

 在定义sql语句中写查询语句,id写刚才接口中定义的方法名,parameterMap写传入的参数类型,resultType写返回结果的地址,中间写查询的sql语句

6.配置sql映射文件 

在刚才创建的mybatis.xml文件配置sql映射文件 

7.测试 MyBatis

新建一个test包,Test类

在Test测试类的main方法中进行下列操作

①首先先读入mybatis核心配置文件

读取配置文件
Reader reader = Resources.getResourceAsReader("mybatis.xml");

 ②创建 SqlSessionFactory对象

创建 SqlSessionFactory对象(把reader放进去)
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);

③ 创建 SqlSession对象

创建 SqlSession对象
SqlSession sqlSession = sessionFactory.openSession();

 ④为接口创建代理对象

为接口创建代理对象
AdminDao adminDao = sqlSession.getMapper(AdminDao.class);

⑤ 调用我们自己的方法

调用我们自己的方法

Admin admin = adminDao.findAdminById(1);
System.out.println(admin);//打印输出在控制台

 在Admin类中写一个toString()方法和无参的构造方法

⑥ 关闭与数据库的会话对象

关闭与数据库的会话对象

sqlSession .close();

 

 点击运行,这样就可以在控制台拿到mysql中admin表中id=1的数据了

三、配置解析

mybatis.xml文件:

1.事务管理方式

就是一次对数据库操作的过程中,执行多条sql的管理


例如转账:

从A账户向B账户转钱 A-500

代码异常

B+500

把所有的操作都执行成功后,再提交事务,让数据库最终执行本次提交的所有sql

sqlSession.commit();//提交数据库事务 事务只针对 新增,修改,删除操作 查询不需要提交事务的

 2.数据库连接池配置

频繁地创建销毁与数据库的连接对象是比较占用时间和空间, 可以在池子中默认创建若干个连接对象,有请求使用时,直接从池子中取出一个对象,用完再还回去, 减少创建和销毁的时间开销

 

3.打印执行日志 

可以将执行过程的日志打印在控制台上方法查看

 

 4.为类型配置别名

位于打印执行日志的下方,为类型配置别名(返回类型)

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

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

相关文章

2024年4款高质量的英语翻译工具推荐!

英语作为一门应用非常广泛的语言&#xff0c;其影响力还是非常深远的。虽然现在学英语的人很多&#xff0c;但对于非英语母语的人来说&#xff0c;英语多多少少会是一个壁垒&#xff0c;所以翻译工具也变得重要了起来。这次&#xff0c;我便要跟大家分享几个很专业的英语翻译工…

连锁门店收银系统源码+电子发票

传统纸质开票模式&#xff0c;流程复杂、时间长&#xff0c;为解决商户开票难的问题&#xff0c;千呼新零售2.0上线了电子发票功能&#xff0c;开通方便&#xff0c;使用简便&#xff01;商户只需要简单配置&#xff0c;就可以实现门店实现开票自由&#xff01; 一、线下订单开…

黑马程序员|8天Python第13章面向对象

一 初识对象 1.生活中数据的组织 2.程序中数据的组织 3.使用对象组织数据 类的属性&#xff1a; 二 成员方法 1.类的定义和使用 2.成员变量和成员方法 类外面是函数&#xff0c;类里面是方法。 3.成员方法的定义语法 self 只是写在这里&#xff0c;传参的时候可以当作不存在。…

QTCreator学习

1.新建程序 2. 设置项目名称 3. Build System选择qmake,若选择cmake则只会产生CmakeLists文件&#xff0c;不会产生pro文件。 4.Base class选择QDialog,表示该类继承于QDialog类 5.套件选择MinGW 32bit,取消掉其他的。 6. 双击ui文件&#xff0c;拖动可添加工具。 7.点击左…

深信服技术服务工程师面试全过程分享

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330#rd 《网安面试指南》http://mp.weixin.qq.com/s?…

这对二婚夫妻结婚半年,一起生活才一个月,就走到了婚姻尽头!

这对二婚夫妻结婚半年&#xff0c;一起生活才一个月&#xff0c;就走到了婚姻尽头&#xff01; 这是一篇涉离婚纠纷的民事起诉状 &#xff08;范文点评&#xff09; 离 婚 起 诉 状 原告&#xff1a;韩某斌&#xff0c;男&#xff0c;现年37岁&#xff0c;汉族&#xff0c;打…

Spring Cloud Consul面试题

​ ​ 您好&#xff0c;我是程序员小羊&#xff01; 前言 Spring Cloud Consul 是微服务架构中的一个重要组件&#xff0c;用于服务发现、配置管理以及健康检查。了解 Spring Cloud Consul 的工作原理和应用场景&#xff0c;对于微服务开发者和架构师来说至关重要。以下是一些常…

线程优先级调度

Windows优先级调度算法 系统维护了一个全局的处理器数组KiProcessorBlock&#xff0c;其中每个元素对应于一个处理器的KPRCB对象。其次&#xff0c;另有一个全局变量KiIdleSummary记录了哪些处理器当前是空闲的。所谓一个处理器是空闲的&#xff0c;是指该处理器正在执行空闲循…

《Techporters架构搭建》-Day08 Spring Boot日志实现

集成日志功能 日志介绍日志相关概念选择Logback还是Log4j2&#xff1f;LogBack相关知识LogbackLogback的基本概念Logback的日志级别Logback的配置文件Logback日志文件解析logback-spring.xml的配置项标签说明完整的logback-spring.xml配置示例知识点补充 整合Spring Boot和Logb…

【Lecture1】清华大学大模型公开课——大模型绪论

#清华大模型公开课第二季 #OpenBMB 目录 1. The Evolution of Artificial Intelligence --History 人工智能的演变--历史 1.1 Definition of AI --定义 1.2 Conceptualization of AI -- 概念 1.3 Birth of AI as a Discipline 1.4 Development of AI 1.4.1 Symbolic Int…

Oracle问题笔记

ORA-28040 没有匹配的验证协议 问题出现场景oracle数据库为12c,应用使用的jdbc或客户端工具是11g版本一下&#xff0c;连接12c数据库时会报ora-28040错误。解决办法在Oracle服务端的$ORACLE_HOME/network/admin/sqlnet.ora文件中添加&#xff1a; SQLNET.ALLOWED_LOGON_VERSI…

消息队列篇

1、队列简介 概念&#xff1a; 队列是任务到任务、任务到中断、中断到任务数据交流的一种机制&#xff0c;说白了&#xff0c;队列就是用来传递消息的。 ----------------------------------------------------------------------------------------------------------------…

【Python机器学习】NLP概述——深度处理

自然语言处理流水线的各个阶段可以看作是层&#xff0c;就像是前馈神经网络中的层一样。深度学习就是通过在传统的两层机器学习模型架构&#xff08;特征提取建模&#xff09;中添加额外的处理层来创建更复杂的模型和行为。 上图中&#xff0c;前四层对应于聊天机器人流水线中的…

MCtalk·CEO对话×每刻科技:经济挑战期,企业如何将“好钢”用在“刀刃”上?

2015 年 10 月&#xff0c;网易数智发布第一款产品&#xff0c;正式踏上了 ToB 商业化之路。从那以后&#xff0c;我们每年举办不同主题的科技峰会&#xff0c;分享最新的行业体感和洞察&#xff1b;访谈各界企业领导者&#xff0c;记录他们的创新与创业经历&#xff1b;走过大…

dubbo:dubbo+zookeeper整合nginx实现网关(四)

文章目录 0. 引言1. nginx简介2. 集成nginx2.1 负载均衡实现 3. 源码4. 总结 0. 引言 我们之前讲解过dubbozookeeper实现服务调用和注册中心&#xff0c;但是还缺乏一个统一的入口&#xff0c;即网关服务。dubbozookeeper的模式更加适合的网关组件为nginx&#xff0c;所以今天…

Unity编辑器扩展:创建一个欢迎窗口,在启动Editor的时候显示自定义窗口。

Unity编辑器扩展&#xff1a;创建一个欢迎窗口&#xff0c;在启动Editor的时候显示自定义窗口。 在Unity开发过程中&#xff0c;经常会遇到需要向其他人展示重要信息的情况&#xff0c;比如项目文档、脚本说明、插件介绍等。这个窗口不仅能够展示必要的文档信息&#xff0c;还…

苍穹外卖(瑞吉外卖)--环境搭建

作为软件开发工程师&#xff0c;在编码的过程中就不可避免地会接触多种软件环境&#xff0c;我们主要来分析在工作中经常遇到的三套环境&#xff0c; 分别是: 开发环境、测试环境、生产环境 开发环境 在开发阶段使用的环境&#xff0c;就是开发环境&#xff0c;一般外部用户无…

解决ubuntu22.04无法识别CH340/CH341和vscode espidf插件无法选择串口设备节点问题

文章目录 解决ubuntu22.04无法识别CH340/CH341和vscode espidf插件无法选择串口设备节点问题不识别CH340/CH341报错解决办法升级驱动编译安装 卸载brltty程序 vscode espidf插件无法选择串口设备节点问题解决办法编译安装 解决ubuntu22.04无法识别CH340/CH341和vscode espidf插…

路径规划——Jump Point Search算法

路径规划——Jump Point Search算法 算法原理 跳点搜索算法(Jump Point Search)&#xff0c;简称JPS&#xff0c;是由澳大利亚两位教授于2011年提出的基于Grid格子的寻路算法。JPS算法在保留A Star算法的框架的同时&#xff0c;进一步优化了A Star算法寻找后继节点的操作。 A…

异常在代码中的两个作用

一.异常的作用: 作用一:异常是用来查询bug的关键参考信息。 作用二:异常可以作为方法内部的一种特殊返回值,以便通知调用者底层的执行情况。 二.举例: 例1: 一个JavaBean类: package com.itheima.a01MyExpection;public class Student { private String name; private int…