mybatis入门教程,mybatis详细教程

1、 Mybatis简介 MyBatis是这个框架现在的名字,而此框架最早的名字是IBatis,其含义是“internet”、“abatis”两个单词的组合,是

1.Mybatis概述

b05af14eb7ad4dec8b027b370f474bde~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788998&x-signature=2rbDiQsOq0A2Q2gRg%2BzcLOb8ZrM%3D

MyBatis是这个框架的当前名称,这个框架的最初名称是IBatis,意思是“Internet”和“Abatis”两个词的组合,开始于2002年,并于2010年6月启动,是一个开源项目。 16日,Apache将该项目的控制权移交给谷歌,并将其更名为MyBatis。因此,从2010年开始,MyBatis框架逐渐成为主流,并且发展得早于Hibernate。

IBatis 和MyBatis 的工作原理是相同的。 IBatis 成为MyBatis 后,核心行为保持不变,但一些组件发生了变化。

MyBatis 是领先的持久层框架,支持定制SQL、存储过程和高级映射。 MyBatis 避免了几乎所有的JDBC 代码、参数的手动设置以及结果集的检索。 MyBatis 可以使用简单的XML 或注释来配置和映射本机信息,将接口和Java POJO(普通旧Java 对象)映射到数据库中的记录。

持久层开发:实体Bean设计思想JDOHibernateMyBatisJPA标准。 MyBatis 的性能优于Hibernate。

MyBatis官网:https://mybatis.org/mybatis-3/

2.第一个MyBatis程序

这次,在Eclipse 中使用Maven 构建项目,并将以下代码添加到pom.xml 文件中。如果使用常规Java项目,只需根据需要添加Jar包即可。

eafd53ba62c1412f988e64eac1d24c2f~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788998&x-signature=bMkKBqXj2loFPJ3ptEFtYs8IgzA%3D

在项目配置下创建一个新目录,并将配置目录添加到类路径(构建路径)中。

示例:配置数据库信息config/dbconfig.properties

b243e81c0bb242e894c39797961e1940~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788998&x-signature=3RFk6JE5l8%2BqRdZ2dycZoX6TicU%3D

范例:MyBatis核心配置文件config/mybatis-config.xml

71d509c4ea264de689d28c5f5c1547d4~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788998&x-signature=7eBMb0%2BkpCiyeyCBtcRuf6iAnA0%3D

下面解释了一些配置。

关于“transactionManager type=’jdbc’/”设置

这代表事务配置,但是MyBatis有两种事务配置方法。

· JDBC:表示使用JDBC。这是一种相对简单的提交或回滚事务的方式,并且依赖于从数据源获取的连接来管理事务形式。

· MANAGED:此配置对于提交或回滚事务几乎没有什么用处,但可以让容器管理整个生命周期(例如Spring是一个负责控制所有对象生命周期的容器)。

关于“dataSource type=’POOLED’”设置

dataSource主要使用基本的JDBC数据源接口来构造JDBC连接对象。 MyBatis 提供三种数据源配置类型:

· UNPOOLED:该数据源通过简单地为每个请求打开和关闭连接来实现。不过,性能有点慢,适用于一些简单的应用,因为它不需要及时获取可用的连接。然而,每个数据库执行此操作的方式不同,并且对于某些数据库来说,数据源配置并不重要,因此数据源不经常使用,几乎没有必要。

· POOLED:JDBC 连接对象的数据源连接池实现。用于避免创建新连接实例时所需的初始连接和身份验证时间。这是一种主要用于高速的格式。目前正在开发中。

· JNDI:使用在某些容器中配置的数据库连接池。现在配置名称查找。

关于“映射器”设置

这是MyBatis的核心配置,主要用于确定操作的数据表。

创建一个emp表并创建一个相应的简单Java类(也是一个Emp类)。

范例:建立数据库脚本

9134f2572464451a95770ec8d215bf0f~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788998&x-signature=0O%2Fj2T72B5M2nhA%2BXgQj6wuJODs%3D

范例:定义简单Java类–Emp.java

public class Emp { private String ename; private Integer getEmpno() { return empno; } .empno=empno; } public String getEname() { return ename } public void setEname(String ename) { this.ename=ename ; } public String getJob() { return job .job=job; } public Integer getMgr() { return mgr; } public void setMgr(Integer mgr) { this.mgr } public Date getHiredate(); this .hiredate=招聘; } public double getSal() { return sal; } public void setSal(double sal) { this.sal=sal; } @Override public String toString() { return ‘Emp [empno=’ + empno + ‘, ename=’ + ename + ‘, job=’ + job + ‘, mgr=’ + mgr + ‘,hiredate=’ + recruate + ‘, sal=’ + sal + ‘]’;在本例中它是一个Java 类,但是一个简单的Java 类需要一个匹配的映射文件。与数据库Emp表对应的简单Java类是Emp.java。在与Java 类相同的路径中创建一个新的EmpMapper.xml 文件。

范例:定义EmpMapper.xml文件

?xml 版本=’1.0′ 编码=’UTF-8′ ?DOCTYPE 映射器PUBLIC ‘-//mybatis.org//DTD 映射器3.0//EN’ ‘http://mybatis.org/dtd/mybatis-3-mapper .dtd’ !–每个POJO对应一个MyBatis命名空间,不能重复。

命名空间设置可以区分不同表上的同类型操作。如果您使用它,请使用“namespace.id”来调用它。

命名空间可以有任何名称,唯一性通常基于表名称、实体类或表名称。

resultType 使用完整路径。

Mapper 命名空间=’com.github.logsave.pojo.EmpMapper’ 选择id=’selOne’ resultType=’com.github.logsave.pojo.Emp’ SELECT * FROM emp WHERE empno=#{empno} /select 插入id=’ creatOne’parameterType=’com.github.logsave.pojo.Emp’ 插入emp(empno,ename,job,mgr,hiredate,sal) 值(#{empno},#{ename},#{job},#{ mgr},#{hiredate},#{sal}) /insert/mapper 追加操作是提取并填充一个简单的Java 类的内容。因此,访问属性时,请使用“#{属性名称}”。编写SQL语句时在末尾添加“;”。

多个XML配置文件和POJO互相引用,导致学习MyBatis时很容易出错。配置文件之间的引用关系如下。

4d262e6f9be74956bd2aeec5a1edca58~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1717788998&x-signature=ay4ME4fKcFFNlhJfuE0V3aebgO4%3D

范例:编写程序完成数据增加操作

public class Test { public static void creat(SqlSession sqlSession) { Emp emp=new Emp(); /*** 第二次运行测试报告错误:重复条目’7499′ in key ‘ Major’

*这是由于主键冲突造成的。只需修复Empno 即可。

*/

System .out.println(‘数据更新行数:’ + sqlSession.insert(‘com.github.logsave.pojo.EmpMapper.creatOne’,emp)); //发送事务} public static void selectByEmpNo (SqlSession sqlSession,int empno) { System.out.println(sqlSession.selectOne(‘com.github.logsave.pojo.EmpMapper.selOne’,empno)); } public static void main(String[] args) { try { //1. 操作获取SqlSession 对象。 String resource=’mybatis-config.xml’; //MyBatis 配置文件路径Reader=Resources.getResourceAsReader(resource); //当前配置文件的输入流SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder() .build(reader);数据库会话工厂SqlSession=sqlSessionFactory.openSession(); //2. 简单操作Java class //creat(sqlSession) //添加数据。7499); //用empno查询数据sqlSession.close(); //关闭连接} catch(IOException e) { e.printStackTrace() } } 至此,添加的数据已成功保存。数据库。

操作MyBatis的步骤可以概括如下:

· 通过Resource获取配置文件(mybatis-config.xml)信息,通过Resource获取Reader对象路径。

· 必须通过此Reader 对象读取配置。读取的配置用于实例化一个SqlSessionFactoryBuilder类对象,然后通过SqlSessionBuilder建立该对象。

· 使用SqlSessionFactory 打开SqlSession 对象。

· 使用SqlSession对数据实现CRUD操作。

· 对于更新,请在提交事务后关闭连接。

原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/84240.html

(0)
小条's avatar小条
上一篇 2024年6月1日 上午3:36
下一篇 2024年6月1日 上午3:36

相关推荐

  • 服务器干什么用的?

    服务器,你听过这个词吗?它是一种神秘的存在,在网络安全加速行业中扮演着重要的角色。那么,什么是服务器?它究竟又有着怎样的作用?不同类型的服务器又有哪些功能?最重要的是,它如何保障网…

    行业资讯 2024年3月23日
    0
  • 电影被屏蔽怎么办,被屏蔽的网页

    电影是人们生活中必不可少的一部分,电影网站是我们获取电影资源的重要渠道。然而,随着互联网行业的发展,越来越多的电影网站被屏蔽,人们无法正常访问。那么,你知道2020年最新被屏蔽的电…

    行业资讯 2024年5月16日
    0
  • 如何申请阿里企业邮箱

    想要在网络行业中提升自己的形象和信誉,拥有一封专业的企业邮箱是必不可少的。而阿里企业邮箱作为国内知名企业邮箱服务商,其强大的功能和优势更是备受各界认可。那么如何申请阿里企业邮箱呢?…

    行业资讯 2024年4月7日
    0
  • 轻量服务器和云服务器ecs哪个好用,轻量云和云服务器的区别

    近年来,云服务器行业蓬勃发展,各种新技术、新产品层出不穷。其中,轻量级云服务器和云服务器是备受关注的两种主流产品。那么,你有没有想过轻量级云服务器和传统云服务器有什么不同呢?今天我…

    行业资讯 2024年4月2日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注