当前位置: 首页 > news >正文

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

目录

一、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.为类型配置别名

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Redis远程字典服务器(7)—— set类型详解
  • VAuditDemo常规漏洞
  • DBAPI如何用SQL将多表关联查询出树状结构数据(嵌套JSON格式)
  • 论文解读:LONGWRITER: UNLEASHING 10,000+ WORD GENERATION FROM LONG CONTEXT LLMS
  • 精准掌控,速看顶级软件资产管理方案,让您企业软件资产一目了然!
  • ArcGIS Pro基础:状态栏显示栏的比例尺设置和经纬度位置
  • 微服务:服务的注册与调用和OpenFiegn
  • 未来展望:观测云技术的发展与企业业务的融合
  • 【PHP入门教程】PHPStudy环境搭建+HelloWorld运行
  • 【机器学习】联邦学习技术
  • 代码随想录DAY23 - 回溯算法 - 08/22
  • Axure RP 9高手速成秘籍:解锁终极快捷键,设计效率飙升10倍!
  • Unity动画模块 之 3D模型导入基础设置 Rig页签
  • 51单片机-LED灯蜂鸣器数码管按键DS18B20温度传感器
  • git 指令
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • Computed property XXX was assigned to but it has no setter
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • input的行数自动增减
  • IP路由与转发
  • JavaScript 奇技淫巧
  • Java小白进阶笔记(3)-初级面向对象
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • linux学习笔记
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • Mybatis初体验
  • orm2 中文文档 3.1 模型属性
  • spring-boot List转Page
  • uni-app项目数字滚动
  • Vue.js-Day01
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • vue脚手架vue-cli
  • Webpack 4 学习01(基础配置)
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 前端面试总结(at, md)
  • 前端自动化解决方案
  • 驱动程序原理
  • 栈实现走出迷宫(C++)
  • elasticsearch-head插件安装
  • ​​​​​​​STM32通过SPI硬件读写W25Q64
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (ibm)Java 语言的 XPath API
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (搬运以学习)flask 上下文的实现
  • (编译到47%失败)to be deleted
  • (补充):java各种进制、原码、反码、补码和文本、图像、音频在计算机中的存储方式
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (十八)Flink CEP 详解