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

相关推荐

  • 制作手机app

    手机app,是如今手机行业中的热门话题。随着智能手机的普及,越来越多的人开始关注如何制作自己的手机app。那么什么是手机app?它有哪些技术特点?制作又是一个怎样的流程?这些问题都…

    行业资讯 2024年3月23日
    0
  • b站被永久封停怎么办,b站封禁怎么办

    除了内容和技术之外,其他视频网站也可以通过加大社区建设来应对B站的审查。建立良好的用户社区可以增加用户之间的互动和交流,提高用户的留存率和忠诚度。同时,您还可以利用用户的力量来推广…

    行业资讯 2024年5月10日
    0
  • 太原网站开发公司,太原做网站的公司哪家好

    在当今信息爆炸的时代,拥有一个专业的网站已经成为企业发展的必备条件。然而,在太原市众多的网页制作公司中选择一家价格合理、服务优质的网页制作公司却是让很多企业主头疼的问题。今天我们就…

    行业资讯 2024年4月9日
    0
  • 自己建一个网站,自己建网站赚钱吗

    如果你想在互联网行业有所作为,建立自己的网站是必不可少的一步。但您可能想知道构建自己的网站到底能为您做什么。在这个竞争的时代拥有自己的网站意味着什么?它的重要性和重要性是什么?接下…

    行业资讯 2024年4月4日
    0

发表回复

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