如何在自己的Maven工程上搭建Mybatis框架?

这篇具有很好参考价值的文章主要介绍了如何在自己的Maven工程上搭建Mybatis框架?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

编译软件:IntelliJ IDEA 2019.2.4 x64
操作系统:win10 x64 位 家庭版
Maven版本:apache-maven-3.6.3
Mybatis版本:3.5.6



前言

“Mybatis框架”,“Mybatis框架“…, 拆解其名词,我们可以得到”Mybatis是一个框架的名字“这一浅显的结论,但是何为框架?何为Mybatis?且看本文为你分解。


一. 什么是Mybatis框架?

1.1 框架是什么?

举个生活中的例子,当我们努力工作,攒钱买房时,买到的房子是可以直接拧包入住吗?当我们花钱购置自己的的个人电脑时,自己的电脑一买回来就可以直接拿来使用的吗?并不是,买到的房子只是毛胚房,需要后期的装修以及添置家具,才能入住;买到的电脑,需要我们首次开机时设置相应的系统参数,比如设置网络与登录账户或者创建账户等等,才能使用。

框架就相当于上述例子中的毛胚房刚买回但未配置的电脑,是个半成品,Java程序中的框架也是如此,其他语言中的框架亦是如此。

Java程序中常见的框架【后端开发】有:

  1. Mybatis框架持久化层框架【dao层】
  2. SpringMVC框架控制层框架【Servlet)层】
  3. Spring框架全能选手

1.2 什么是MyBatis ?

  1. MyBatis是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架
  2. MyBatis避免了几乎所有的DBC代码和手动设置参数以及获取结果集
  3. MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的 POJO(Plain Ordinary Java Object,普通的Java对象)映射成数据库中的记录
  4. Mybatis是一个半自动的持久化层的ORM(Object Relation Mapping)框架

什么是ORM?

ORM (Object Relation Mapping) --> 【对象 关系 映射】

将java中的对象与数据库中表建立映射关系

优势就是操作java中的对象,就可以影响数据库中表的数据

为何称MyBatis是半自动的?

这是相对于真正的 ORM 框架(例如 Hibernate、Spring Data JPA 等)来说,Mybatis 在对象关系映射方面自动化程度较低。

在 Mybatis 中,开发人员需要手动将 SQL 语句与 Java 对象之间的映射规则定义在 XML 文件或注解中。这意味着,Mybatis 不会自动生成 SQL 语句,并且不会在 Java 对象和数据库表之间进行自动转换。

但是,与此同时,Mybatis 也提供了很多功能上强大的 SQL 语句生成特性,例如:可以动态拼接 SQL 语句、支持使用 DAO 层接口代理执行 SQL 语句等,使得开发人员能够更加灵活地操作数据库。

1.3 MyBatis的参考资料在哪找?

①MyBatis的源码地址

②MyBatis的官方文档地址


二. 如何搭建Mybatisi框架(入门案例)?

不论导入什么框架,都要历经以下的三步:

  1. 导入jar包
  2. 编写配置文件
  3. 使用核心类库

案例需求:在数据库中建立一个数据表tbl_employee,同时在maven工程中建立一个Employee类,实现从数据库中根据id(员工编号)查找对应的员工信息,尝试使用mybatis框架实现它

2.1 准备数据

①建库建表建约束并导入测试数据

CREATE TABLE tbl_employee(
id INT(11)PRIMARY KEY AUTO_INCREMENT,
last_name VARCHAR(50),
email VARCHAR(50),
salary DOUBLE(10,2)
);

如何在自己的Maven工程上搭建Mybatis框架?

②准备maven工程

如何在自己的Maven工程上搭建Mybatis框架?

2.2 搭建Mybatis框架步骤

2.2.1 在该maven工程下的pop.xml中导入jar包

我们需要以下三个jar包:

  • MySQL的驱动jar包 8.0.26
  • junit 4.12
  • Mybatis框架的jar包 3.5.6

示例代码如下:

//pop.xml中导入相关jar包
<dependencies>

    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.26</version>
    </dependency>


    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.6</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/junit/junit -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>



</dependencies>

2.2.2 编写核心配置文件【mybatis-config.xml】

位置:

resources目录下

文件命名:

推荐使用mybatis-config.xml

代码示例如下:

相关代码可直接在 https://mybatis.org/mybatis-3/zh/getting-started.html 中复制相应代码,粘贴到自己的核心配置文件中即可,如下所示。

如何在自己的Maven工程上搭建Mybatis框架?

如何在自己的Maven工程上搭建Mybatis框架?

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <!--   下面是mysql8版本            -->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <!--    url后要加时区 ?serverTimezone=UTC" ,不然报错           -->
                <property name="url" value="jdbc:mysql://localhost:3306/0411db?serverTimezone=UTC"/>
            <!-- 下面是mysql5版本的写法
                 <property name="driver"value="com.mysql.jdbc.Driver"/>
                 <property name="url"value="jdbc:mysql://localhost:3306/0411db"/>
                -->
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    //设置映射文件的路径
    <mappers>
        <mapper resource="org/mybatis/example/BlogMapper.xml"/>
    </mappers>
</configuration>

如何在自己的Maven工程上搭建Mybatis框架?

注意:

如果你的MySQL版本为8及以上, url后要加时区“ ?serverTimezone=UTC" ,不然会报错

针对MySQL的数据库版本不同, diver与url的value值写法会有所不同

以我的mysql数据库版本(8.0.26)举例如下所示:

MySQL8版本:

<property naurlme="driver" value="com.mysql.cj.jdbc.Driver"/>
/url后要加时区“ ?serverTimezone=UTC" ,不然会报错
<property name="url" value="jdbc:mysql://localhost:3306/0411db?serverTimezone=UTC"/>

MySQL5版本:

<property name="driver"value="com.mysql.jdbc.Driver"/>
<property name="url"value="jdbc:mysql://localhost:3306/0411db"/>

2.2.3 书写相关接口及映射文件

映射文件位置:

resources/mapper(这是新建一个包Mapper用以存放多个映射文件)

映射文件命名:

XXMapper.xml(推荐与对应的Mapper接口的命名一致)

映射文件作用:

为对应的Mapper接口书写sql语句

ps:

一个xxxMapper接口对应一个映射文件XXMapper.xml

如果有多个Mapper接口,那么resources目录下就必须有多个对应的映射文件,但是resources目录下也存放核心配置文件,为区分核心配置文件与多个映射文件,推荐在resources目录下新建一个包Mapper,用以存放多个映射文件

注意:

  • 映射文件名与接口名保持一致
  • 映射文件namespace与接口全类名保持一致
  • 映射文件Select的Id的属性值与接口的方法名保持一致

如何在自己的Maven工程上搭建Mybatis框架?

附注:

如何在自己的Maven工程上搭建Mybatis框架?

示例代码如下:

①在src\main\java\mybatis\mapper下定义EmployeeMapper接口

package mybatis.mapper;

import mybatis.pojo.Employee;

public interface EmployeeMapper {
	//根据员工编号查找对应的员工信息
    public Employee selectByempId(int empId);

}

②在src\main\resources\mapper下定义EmployeeMapper接口对应的映射文件EmployeeMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">


<mapper namespace="mybatis.mapper.EmployeeMapper">
    <!--  resultType:Mapper接口中selectByempId方法的返回值类型【Employee类(写类的全名称)】  -->
    <select id=" selectByempId" resultType="mybatis.pojo.Employee">
        select
            id,
            last_name,
            email,salary
        from
            tbl_employee
        where
            id= #{empId}
    </select>
</mapper>

附注:映射文件中的基本配置信息的相关代码可直接在https://mybatis.org/mybatis-3/zh/getting-started.html 中复制代码,粘贴到自己的映射文件,修改部分参数值即可

如何在自己的Maven工程上搭建Mybatis框架?

2.2.4 测试(使用SqlSession对象)

步骤:

①先获取SqlSessionFactory对象

②再获取SqlSession对象

③通过SqlSession对象获取KXXMapper代理对象

④测试

代码示例如下:

import mybatis.mapper.EmployeeMapper;
import mybatis.pojo.Employee;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;

public class TestMybatis {

    @Test
    public void test01(){

        try {
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

            //通过SqlSessionFactory对象调用openSession();
            SqlSession sqlSession = sqlSessionFactory.openSession();

            //获取EmployeeMapper的代理对象
            EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class);
            System.out.println(" employeeMapper.getClass().getName() = "+employeeMapper.getClass().getName());

            Employee employee = employeeMapper.selectByempId(1);
            System.out.println(employee);


        } catch (IOException e) {
            e.printStackTrace();
        }

    }

}

如何在自己的Maven工程上搭建Mybatis框架?

2.3 搭建log4j 日志框架

为什么要搭建log4j 日志框架?

log4j 日志框架可以把mybatis 的底层运行过程显示出来,便于我们开发者查找bug

步骤:

①在要应用的模块的pop.xml中引入log4j 的jar包

代码示例如下:

<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

②在resources目录下编写它的配置文件log4j.xml

示例代码如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
        <param name="Encoding" value="UTF-8" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m  (%F:%L) \n" />
        </layout>
    </appender>
    <logger name="java.sql">
        <level value="debug" />
    </logger>
    <logger name="org.apache.ibatis">
        <level value="info" />
    </logger>
    <root>
        <level value="debug" />
        <appender-ref ref="STDOUT" />
    </root>
</log4j:configuration>

③运行测试

如何在自己的Maven工程上搭建Mybatis框架?文章来源地址https://www.toymoban.com/news/detail-430613.html

到了这里,关于如何在自己的Maven工程上搭建Mybatis框架?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Intellij-idea 如何编译maven工程*

    在 Intellij IDEA 中编译 Maven 工程的步骤如下: 打开你的 Maven 工程。如果工程已经在 IDEA 中打开,那么你可以直接进行下一步。如果没有,你可以通过 File - Open 在弹出的对话框中选择你的 Maven 工程路径进行打开。 打开 Maven 项目窗口。在 IDEA 的右边会有一个 Maven 项目的窗口,

    2024年02月02日
    浏览(44)
  • IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Spring搭建框架步骤

    第一章 初识Spring 1.1 Spring简介 Spring是一个为简化企业级开发而生的 开源框架 。 Spring是一个 IOC(DI) 和 AOP 容器框架。 IOC全称:Inversion of Control【控制反转】 将对象【万物皆对象】控制权交个Spring DI全称:(Dependency Injection):依赖注入 AOP全称:Aspect-Oriented Programming,面向切面编

    2024年02月04日
    浏览(34)
  • 第十篇:如何通过开源框架搭建自己的区块链网络?

    作者:禅与计算机程序设计艺术 区块链是由分布式系统技术所构建、管理、维护、保障的数据共享、共识机制、透明可验证等特性的新型计算机分布式基础设施技术。从某种程度上说,区块链可以看做一种去中心化的数据库,记录着所有参与者间的历史交易记录。每一条数据

    2024年02月08日
    浏览(30)
  • 如何在本地搭建Maven环境并整合进IDEA中以及创建web工程?【2023最新版】

    编译软件:IntelliJ IDEA 2019.2.4 x64 操作系统:win10 x64 位 家庭版 Maven版本:apache-maven-3.6.3 使用Maven之前 : 自行在网络中下载iar包,效率较低 。如在谷歌、百度中搜素相关 jar包资源 使用Maven之后 : 统一在一个地址下载jar包等资源 。如使用阿里云镜像服务器下载等.… 使用Mave

    2024年02月02日
    浏览(54)
  • Maven项目中使用Mybatis框架

    1.写一个实体类 2.编写OwnerMapper接口 3.编写 OwnerMapper.xml文件 总结:这里已经算是成功完成了一个插入操作,想进行其他的操作只需在mapper接口里添加方法,再在对应的xml文件里写sql语句就行了。注意的是有的时候你不止一个实体类,这时候你编写新的mapper接口和新的xml文件后

    2024年02月13日
    浏览(24)
  • IntelliJ IDEA编译Maven工程:一步步详解

    Apache Maven是一个流行的自动化构建工具,被广泛应用于Java项目的构建管理中。IntelliJ IDEA作为一个功能强大的集成开发环境(IDE),它提供了对Maven工程的天然支持,并能简化构建过程。本文将详细介绍如何在IntelliJ IDEA中编译Maven工程。 首先确保你有一个已安装的IntelliJ IDEA环

    2024年01月17日
    浏览(41)
  • Maven和MyBatis框架简单实现数据库交互

    MyBatis是一种基于Java语言的持久层框架,它的主要目的是简化与数据库的交互过程。MyBatis通过XML或注解配置来映射Java对象和数据库表之间的关系,并提供了灵活的查询方式和结果集处理机制。MyBatis还提供了事务管理、缓存机制、插件扩展等特性。 使用MyBatis可以将SQL语句和

    2024年01月17日
    浏览(38)
  • 【Maven】009-Maven 简单父子工程搭建

    父工程为学校,子工程(模块)有两个:通用模块、教师模块。 lombok:每个子工程都需要,直接在父工程引入依赖; hutool:在父工程管理依赖版本。 第一步:创建父工程 第二步:引入公共依赖 lombok 和管理 hutool 依赖版本 第一步:创建子模块 IDEA 中选择将 school 作为父工程

    2024年01月19日
    浏览(31)
  • Idea2020.1编译maven工程显示jar包不存在的解决方法

    主要是给自己看的,以免以后遇到这个问题找不到方法。 问题描述:idea编译maven工程会显示jar包不存在,用maven编译可以通过,仔细检查jar包是都在的,新创建也编译不通过 找了好多方法都不能解决,最终发现以下两种可以解决 解决方案:第一种:(不推荐) 打开idea的Se

    2024年02月12日
    浏览(46)
  • window10_ffmpeg调试环境搭建-自己编译

    《FFmpeg原理》的社群来了,想加入社群的朋友请购买 VIP 版,VIP 版有更高级的内容与答疑服务。 《window10_ffmpeg调试环境搭建-极速版》已经介绍了在qt creator里面 调试ffmpeg.c 工程。但是极速版的dll是现成的。所以本文来讲解如何自己编译出ffmpeg的dll。 window10 环境下 ffmpeg的编

    2023年04月09日
    浏览(77)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包