MyBatis——IDEA中使用Maven搭建MyBatis框架,让它跑起来(入门)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MyBatis——IDEA中使用Maven搭建MyBatis框架,让它跑起来(入门)

文章目录:


1.准备数据表(Navicat

2.通过Maven创建项目(IDEA

3.pom.xml文件中加入相关的Maven依赖坐标

4.编写Student实体类、StudentDao接口

5.编写StudentDao.xml文件(mapper映射文件)

6.编写MyBatis.xml主配置文件 

7.编写MyTest测试类 

8.框架搭建成功,正常运行结果 

9.总结大体的步骤

1.准备数据表(Navicat

2.通过Maven创建项目(IDEA)

那么用Maven搭建的MyBatis大框架就是上图的样式。

下面对项目进行一些特定的配置设置:👇👇👇

3.pom.xml文件中加入相关的Maven依赖坐标

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <!--当前项目坐标-->
  <groupId>com.bjpowernode</groupId>
  <artifactId>ch01-first</artifactId>
  <version>1.0</version>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>14</maven.compiler.source>
    <maven.compiler.target>14</maven.compiler.target>
  </properties>
  <!--依赖列表-->
  <dependencies>
    <!--MyBatis依赖-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.1</version>
    </dependency>
    <!--mysql驱动-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.9</version>
    </dependency>
    <!--单元测试-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <!--资源插件:处理src/main/java目录中的xml-->
    <resources>
      <resource>
        <directory>src/main/java</directory><!--所在的目录-->
        <includes><!--包括目录下的.properties,.xml 文件都会扫描到-->
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <filtering>false</filtering>
      </resource>
    </resources>
  </build>
</project>

这里给出修改后的xml文件,注释已经写的很详细了!!!

我在代码的 <dependencies> 标签上方写了注释:依赖列表。也就是说我们需要在这里面添加需要用到的架包的坐标。

其中包括 MyBatis 依赖、MySQL驱动、junit测试,而在 <build> 标签中添加的是 <resources>标签(作用已写在注释中)

4.编写Student实体类、StudentDao接口


package com.bjpowernode.entity;
/**
 *
 */
public class Student {
    //属性名和列名一样
    private Integer id;
    private String name;
    private String email;
    private Integer age;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "学生实体的信息{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", email='" + email + '\'' +
                ", age=" + age +
                '}';
    }
}
package com.bjpowernode.dao;
import com.bjpowernode.entity.Student;
/**
 *
 */
public interface StudentDao {
    //查询一个学生
    Student selectStudentById(Integer id);
}

5.编写StudentDao.xml文件(mapper映射文件)

<?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.bjpowernode.dao.StudentDao">
    <!--
    <select id="selectBlog" resultType="Blog">
        select * from Blog where id = #{id}
    </select>-->
    <!--查询一个学生Student
        <select>:表示查询操作,里面是select语句
        id:要执行的sql语句的唯一标识,是一个自定义字符串
            推荐使用Dao接口中的方法名称
        resultType:告诉MyBatis,执行sql语句,把数据赋值给哪个类型的Java对象
                    推荐使用Java对象的全限定名称
        #{studentId}:占位符,表示从Java程序中传入过来的数据
    -->
    <select id="selectStudentById" resultType="com.bjpowernode.entity.Student">
        select id,name,email,age from student where id=#{studentId}
    </select>
</mapper>
<!--
    1.约束文件
      http://mybatis.org/dtd/mybatis-3-mapper.dtd
      约束文件作用:定义和限制当前文件中可以使用的标签和属性,以及标签出现的顺序
    2.mapper是根标签
      namespace:命名空间,必须有值(唯一),不能为空。
                 推荐使用Dao接口的全限定名称
      作用:参与识别sql语句的作用
    3.在mapper里面可以写 <insert>,<update>,<delete>,<select>标签
      <insert>里面是 insert 语句,表示执行的是 insert 操作
      <update>里面是 update 语句,表示执行的是 update 操作
      <delete>里面是 delete 语句,表示执行的是 delete 操作
      <select>里面是 select 语句,表示执行的是 select 操作
-->

这里给出修改后的xml文件,注释已经写的很详细了!!!

<select>标签中就是我们要执行的 sql 语句,这里注意 namespaceidresultType 的含义及设置!!!

6.编写MyBatis.xml主配置文件

src/main目录下,我们要新建一个 resources 目录,然后右键单击 resources → Mark Directory as → Resources Root。将此文件夹的类型修改为 Resources Root,之后在这个目录下创建一个 File,名为 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>
    <!--设置日志-->
    <!--
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>-->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <!--配置数据源:创建Connection对象-->
            <dataSource type="POOLED">
                <!--driver:驱动内容-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <!--连接数据库的url-->
                <property name="url" value="jdbc:mysql://localhost:3306/ssm?useUnicode=true&amp;characterEncoding=utf-8"/>
                <!--用户名-->
                <property name="username" value="root"/>
                <!--密码-->
                <property name="password" value="12345678"/>
            </dataSource>
        </environment>
    </environments>
    <!--指定其他mapper文件的位置
        目的是找到其他mapper文件的sql语句
    -->
    <mappers>
        <!--使用mapper的resource属性指定mapper文件的路径
            这个路径是从target/classes路径开启的
            使用注意:resource="mapper"文件的路径,使用 / 分割路径
                    一个resource指定一个mapper文件
        -->
        <mapper resource="com/bjpowernode/dao/StudentDao.xml"/>
    </mappers>
</configuration>

7.编写MyTest测试类


package com.bjpowernode;
import com.bjpowernode.entity.Student;
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 MyTest {
    //测试MyBatis执行sql语句
    @Test
    public void testSelectStudentById() throws IOException {
        //调用MyBatis某个对象的方法,执行mapper文件中的sql语句
        //MyBatis核心类:SqlSessionFactory
        //1.定义MyBatis主配置文件的位置,从类路径开始的相对路径
        String config="mybatis.xml";
        //2.读取主配置文件,使用MyBatis框架中的Resources类
        InputStream inputStream=Resources.getResourceAsStream(config);
        //3.创建SqlSessionFactory对象,使用SqlSessionFactoryBuilder类
        SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);
        //4.获取SqlSession对象
        SqlSession session=factory.openSession();
        //5.指定要执行的sql语句的id
        //  sql的 id = namespace + "." + select|update|insert|delete标签的id属性值
        String sqlId="com.bjpowernode.dao.StudentDao" + "." + "selectStudentById";
        //6.通过SqlSessionde的方法,执行sql语句
        Student student=session.selectOne(sqlId,1001);
        System.out.println("使用MyBatis查询一个学生:" + student);
        //7.关闭SqlSession对象
        session.close();
    }
}

每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。SqlSessionFactory的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的 Configuration 实例来构建出SqlSessionFactory 实例。

XML 文件中构建 SqlSessionFactory 的实例非常简单,建议使用类路径下的资源文件进行配置。但也可以使用任意的输入流(InputStream)实例,比如用文件路径字符串或 file:// URL 构造的输入流。MyBatis 包含一个名叫 Resources 的工具类,它包含一些实用方法,使得从类路径或其它位置加载资源文件更加容易。

8.框架搭建成功,正常运行结果


9.总结大体的步骤

1.    创建 student 表(idnameemailage)。

2.    新建 Maven 项目。

3.     修改 pom.xml

 1)加入Maven依赖:MyBatis依赖、MySQL驱动、junit

 2)在 <build> 中加入资源插件

4.    创建实体类 Student,定义属性(属性名和列名保持一致)。

5.    创建 Dao 接口,定义操作数据库的方法。

6.    创建 StudentDao.xmlmapper文件),写sql语句。

1MyBatis框架推荐是把 Java 代码和 sql 语句分开

2mapper文件:定义在和 Dao接口同一个目录下,一个表一个mapper文件

7.    创建 MyBatis.xml文件,放在 resources 目录下。

1)定义创建连接实例的数据源(DataSource)对象

2)指定其他 mapper 文件的位置

8.    创建测试类

1)可以使用 main 方法,测试访问数据库。

2)也可以使用 junit 访问数据库。

相关的xml文件参考网址:https://mybatis.org/mybatis-3/zh/index.html

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
18天前
|
SQL XML Java
菜鸟之路Day33一一Mybatis入门
本文是《菜鸟之路Day33——Mybatis入门》的教程,作者blue于2025年5月18日撰写。文章介绍了MyBatis作为一款优秀的持久层框架,如何简化JDBC开发。通过创建SpringBoot工程、数据库表`user`及实体类`User`,引入MyBatis依赖并配置数据库连接信息,使用注解方式编写SQL语句实现查询所有用户数据的功能。此外,还展示了如何通过Lombok优化实体类代码,减少冗余的getter/setter等方法,提高开发效率。最后通过单元测试验证功能的正确性。
72 19
|
1月前
|
Java 应用服务中间件 Maven
在IntelliJ IDEA中如何配置使用Maven以创建Tomcat环境
所以,别担心这些工具看起来有些吓人,实际上这些都是为了帮助你更好的完成工作的工具,就像超市里的各种烹饪工具一样,尽管它们看起来可能很复杂,但只要你学会用,它们会为你烹饪出一道道美妙的食物。这就是学习新技能的乐趣,让我们一起享受这个过程,攀登知识的高峰!
137 27
|
5月前
|
SQL 缓存 Java
【吐血整理】MyBatis从入门到精通
本文介绍了 MyBatis 的使用指南,涵盖开发环境搭建、基础操作实例和进阶特性。首先,详细描述了 JDK 和 IDE 的安装及依赖引入,确保项目顺利运行。接着,通过创建用户表和实体类,演示了 CRUD 操作的全流程,包括查询、插入、更新和删除。最后,深入探讨了动态 SQL 和缓存机制等高级功能,帮助开发者提升数据库交互效率和代码灵活性。掌握这些内容,能显著提高 Java 编程中的数据库操作能力。
888 4
|
28天前
|
Java 应用服务中间件 Apache
在IntelliJ IDEA中使用Maven配置Tomcat环境
此配置方法具有较高的实用性,简单易懂。遵循以上步骤,您将能顺利在IntelliJ IDEA中使用Maven配置Tomcat环境,从而进行Web项目的开发和调试。
120 18
|
3月前
|
Java 关系型数据库 数据库连接
Javaweb之Mybatis入门程序的详细解析
本文详细介绍了一个MyBatis入门程序的创建过程,从环境准备、Maven项目创建、MyBatis配置、实体类和Mapper接口的定义,到工具类和测试类的编写。通过这个示例,读者可以了解MyBatis的基本使用方法,并在实际项目中应用这些知识。
106 11
|
6月前
|
存储 Java Linux
【Maven】——基础入门,插件安装、配置和简单使用,Maven如何设置国内源
Maven插件安装,Maven项目构建,依赖管理,Haven Help插件,Maven仓库,Maven如何设置国内源
|
8月前
|
缓存 IDE Java
idea的maven项目打包时没有source下的文件
【10月更文挑战第21天】idea的maven项目打包时没有source下的文件
487 1
|
8月前
|
Java 应用服务中间件 Maven
【终极解决方案】IDEA maven 项目修改代码不生效。
【终极解决方案】IDEA maven 项目修改代码不生效。
1089 1
|
3月前
|
XML Java 数据库连接
微服务——SpringBoot使用归纳——Spring Boot集成MyBatis——基于注解的整合
本文介绍了Spring Boot集成MyBatis的两种方式:基于XML和注解的形式。重点讲解了注解方式,包括@Select、@Insert、@Update、@Delete等常用注解的使用方法,以及多参数时@Param注解的应用。同时,针对字段映射不一致的问题,提供了@Results和@ResultMap的解决方案。文章还提到实际项目中常结合XML与注解的优点,灵活使用两者以提高开发效率,并附带课程源码供下载学习。
71 0
|
5月前
|
前端开发 Java 数据库连接
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
202 2

推荐镜像

更多