当前位置:首页 > 经验 >

mybatis简介(mybatis的详细讲解)

来源:原点资讯(www.yd166.com)时间:2022-10-29 11:28:39作者:YD166手机阅读>>

一. mybatis

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。

MyBatis 是一款优秀的持久层,ORM(对象关系映射)框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 jdbc 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

  1. 特点
  • 灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。
  • 解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。
  • 提供映射标签,支持对象与数据库的orm字段关系映射
  • 提供对象关系映射标签,支持对象关系组建维护
  • 提供xml标签,支持编写动态sql。

以上内容引用自百度

二.基本使用

  1. 引用依赖

<dependencies> <!-- mybatis的依赖--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency> <!--连接mysql数据库的驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.24</version> </dependency> <!--简化数据的配置--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.20</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>RELEASE</version> <scope>compile</scope> </dependency> </dependencies>

2 编写resources目录下的jdbc.properties

jdbc.url = jdbc:mysql://127.0.0.1:3306/数据库名称?serverTimezone=UTC #serverTimezone=UTC消除时差异常 jdbc.username=用户名 jdbc.driver=com.mysql.cj.jdbc.Driver #8版本的数据库驱动 jdbc.password=123456 #数据库密码

3.resources配置mybatis的配置文件 mybatis-config.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> <!-- 载入外部资源文件--> <properties resource="jdbc.properties"> </properties> <!--设置输入日志--> <settings> <setting name="logImpl" value="STDOUT_LOGGING"/> </settings> <!--定义别名--> <typeAliases> <!-- 别名1 package 位于该包下的所有类名 是该类的完全限定名的别名--> <package name="com.kuang.entity"/> <!-- 别名2 typeAlias 需要明确指定类的完全限定名--> <!-- <typeAlias type="com.kuang.entity.Location" alias="location"/>--> <!-- 两者只能同时用一个--> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <!-- DataSource数据源 设置URL usename password jdbc driver ${jdbc.xx}表示获取properties文件里的值--> <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> <!-- 1 package的使用调剂 XML文件名和接口名一样 在同一目录下--> <!-- <package name="com.kuang.dao"/>--> <!-- 2 使用resource 指定文件路径 --> <mapper resource="mapper/some.xml"/> </mappers> </configuration>

4 定义实体类 与数据库的列名一样

@Data public class Book { private Integer department_id; private Integer manager_id; private Integer location_id; private String department_name; private String city; }

5. 定义dao接口

public interface some { List<Book> getDeaprtmenst(); }

6目录下resources 定义相应的mapper文件some.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="com.kuang.dao.some"> <!--namespace为接口的全限定名 id为接口里的方法名 resultType为返回类型 应为设置了别名为类名 不需要写全限定名--> <select id="getDeaprtmenst" resultType="Book"> select * from departments </select> </mapper>

7 编写测试类进行测试

public class MainApplicaion { @Test public void sodsf(){ String config="mybatis-config.xml"; try { // 获取SqlSessionFactory InputStream strem = Resources.getResourceAsStream(config); SqlSessionFactory build = new SqlSessionFactoryBuilder().build(strem); //开启回话 build.openSession(TRUE) TRUE表示自动提交事务 SqlSession sqlSession = build.openSession(); // 获取接口 some mapper = sqlSession.getMapper(some.class); List<Book> books=mapper.getDeaprtmenst(); books.forEach(System.out::println); } catch (IOException e) { e.printStackTrace(); } } },

栏目热文

mybatis面试题(java面试必背八股文)

mybatis面试题(java面试必背八股文)

点击上方"java全栈技术"关注,每天学习一个java知识点1. #{}和${}的区别是什么?#{}是预编译处理,${}...

2022-10-29 11:56:17查看全文 >>

mybatis详细讲解(mybatis操作步骤)

mybatis详细讲解(mybatis操作步骤)

废话不多说,直接进入文章。我们在使用Mybatis的时候,会在xml中编写SQL语句。如图:那么,MyBatis底层是如...

2022-10-29 11:57:34查看全文 >>

mybatis入门教程(mybatis初学者总结)

mybatis入门教程(mybatis初学者总结)

在我们企业级后台应用开发的过程中,一个比较经典的应用场景就是权限控制操作。采用RBAC(Role-Based Acces...

2022-10-29 11:27:17查看全文 >>

mybatis的工作原理和流程(mybatis执行流程讲解)

mybatis的工作原理和流程(mybatis执行流程讲解)

1、mybatis基本工作原理介绍计算机的基本工作就是存储和计算,而MyBatis是存储领域的利器。MyBatis的基本...

2022-10-29 12:10:38查看全文 >>

mybatis官方文档中文(mybatis免费)

mybatis官方文档中文(mybatis免费)

官网地址:https://github.com/mybatis/mybatis-3一个简单的mybatis-demo简概...

2022-10-29 11:32:46查看全文 >>

mybatis工作原理分析(mybatis工作原理及项目操作配置)

mybatis工作原理分析(mybatis工作原理及项目操作配置)

前言:mybatis是最近几年比较流行的操作数据库框架了,平时都只知道怎么去配置,怎么去用它,那你们知道它是如何实现的吗...

2022-10-29 12:11:32查看全文 >>

mybatis作用及特点(mybatis优点有哪些)

mybatis作用及特点(mybatis优点有哪些)

a、MyBatis 把 sql 语句从 Java 源程序中独立出来,放在单独的 XML 文件中编写,给程序的维护带来了很...

2022-10-29 11:45:02查看全文 >>

springboot的starter原理(springboot starter核心组件)

springboot的starter原理(springboot starter核心组件)

前言我们都知道,Spring的功能非常强大,但也有些弊端。比如:我们需要手动去配置大量的参数,没有默认值,需要我们管理大...

2022-10-29 11:58:07查看全文 >>

mybatisplus 代码生成器(mybatisplus代码生成器模板)

mybatisplus 代码生成器(mybatisplus代码生成器模板)

简介: 代码生成器,也叫逆向工程,是根据数据库里的表结构,自动生成对应的实体类、映射文件和接口。代码生成器,也叫逆向工程...

2022-10-29 12:13:45查看全文 >>

springboot菜鸟教程(菜鸟教程spring boot)

springboot菜鸟教程(菜鸟教程spring boot)

- 一、SpringBoot的starter简介 -1.1 什么是starter(场景启动器)在SpringBoot出现...

2022-10-29 12:02:31查看全文 >>

文档排行