Java Mybatis框架应用怎么配置

发布时间:2022-08-16 17:44:21 作者:iii
来源:亿速云 阅读:144

Java Mybatis框架应用怎么配置

1. 引言

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

本文将详细介绍如何在 Java 项目中配置和使用 MyBatis 框架。

2. 环境准备

在开始配置 MyBatis 之前,确保你已经具备以下环境:

3. 创建 Maven 项目

首先,我们需要创建一个 Maven 项目。如果你已经有一个现成的项目,可以跳过这一步。

3.1 使用命令行创建 Maven 项目

mvn archetype:generate -DgroupId=com.example -DartifactId=mybatis-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

3.2 使用 IDE 创建 Maven 项目

在 IntelliJ IDEA 或 Eclipse 中,选择创建新项目,然后选择 Maven 项目模板,填写 GroupIdArtifactId,完成项目创建。

4. 添加 MyBatis 依赖

pom.xml 文件中添加 MyBatis 和相关依赖。

<dependencies>
    <!-- MyBatis 核心依赖 -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.7</version>
    </dependency>

    <!-- 数据库驱动依赖 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.26</version>
    </dependency>

    <!-- 日志依赖 -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.32</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.6</version>
    </dependency>

    <!-- 测试依赖 -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.2</version>
        <scope>test</scope>
    </dependency>
</dependencies>

5. 配置 MyBatis

5.1 创建 MyBatis 配置文件

src/main/resources 目录下创建一个名为 mybatis-config.xml 的文件,用于配置 MyBatis 的核心设置。

<?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="SLF4J"/>
    </settings>

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis_demo?useSSL=false&amp;serverTimezone=UTC"/>
                <property name="username" value="root"/>
                <property name="password" value="password"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource="com/example/mapper/UserMapper.xml"/>
    </mappers>
</configuration>

5.2 创建数据库表

在 MySQL 中创建一个简单的用户表。

CREATE TABLE user (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(50) NOT NULL
);

5.3 创建实体类

src/main/java/com/example/model 目录下创建一个 User 类。

package com.example.model;

public class User {
    private int id;
    private String name;
    private String email;

    // Getters and Setters
    public int getId() {
        return id;
    }

    public void setId(int 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;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", email='" + email + '\'' +
                '}';
    }
}

5.4 创建 Mapper 接口

src/main/java/com/example/mapper 目录下创建一个 UserMapper 接口。

package com.example.mapper;

import com.example.model.User;

import java.util.List;

public interface UserMapper {
    User selectUserById(int id);
    List<User> selectAllUsers();
    void insertUser(User user);
    void updateUser(User user);
    void deleteUser(int id);
}

5.5 创建 Mapper XML 文件

src/main/resources/com/example/mapper 目录下创建一个 UserMapper.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.example.mapper.UserMapper">
    <select id="selectUserById" resultType="com.example.model.User">
        SELECT * FROM user WHERE id = #{id}
    </select>

    <select id="selectAllUsers" resultType="com.example.model.User">
        SELECT * FROM user
    </select>

    <insert id="insertUser" parameterType="com.example.model.User">
        INSERT INTO user (name, email) VALUES (#{name}, #{email})
    </insert>

    <update id="updateUser" parameterType="com.example.model.User">
        UPDATE user SET name = #{name}, email = #{email} WHERE id = #{id}
    </update>

    <delete id="deleteUser" parameterType="int">
        DELETE FROM user WHERE id = #{id}
    </delete>
</mapper>

6. 使用 MyBatis

6.1 创建 MyBatis 工具类

src/main/java/com/example/util 目录下创建一个 MyBatisUtil 类,用于获取 SqlSession

package com.example.util;

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 java.io.IOException;
import java.io.InputStream;

public class MyBatisUtil {
    private static SqlSessionFactory sqlSessionFactory;

    static {
        try {
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static SqlSession getSqlSession() {
        return sqlSessionFactory.openSession();
    }
}

6.2 测试 MyBatis

src/test/java/com/example 目录下创建一个 MyBatisTest 类,用于测试 MyBatis 的功能。

package com.example;

import com.example.mapper.UserMapper;
import com.example.model.User;
import com.example.util.MyBatisUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

import java.util.List;

public class MyBatisTest {
    @Test
    public void testSelectUserById() {
        try (SqlSession sqlSession = MyBatisUtil.getSqlSession()) {
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            User user = mapper.selectUserById(1);
            System.out.println(user);
        }
    }

    @Test
    public void testSelectAllUsers() {
        try (SqlSession sqlSession = MyBatisUtil.getSqlSession()) {
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            List<User> users = mapper.selectAllUsers();
            users.forEach(System.out::println);
        }
    }

    @Test
    public void testInsertUser() {
        try (SqlSession sqlSession = MyBatisUtil.getSqlSession()) {
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            User user = new User();
            user.setName("John Doe");
            user.setEmail("john.doe@example.com");
            mapper.insertUser(user);
            sqlSession.commit();
        }
    }

    @Test
    public void testUpdateUser() {
        try (SqlSession sqlSession = MyBatisUtil.getSqlSession()) {
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            User user = mapper.selectUserById(1);
            user.setName("Jane Doe");
            mapper.updateUser(user);
            sqlSession.commit();
        }
    }

    @Test
    public void testDeleteUser() {
        try (SqlSession sqlSession = MyBatisUtil.getSqlSession()) {
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            mapper.deleteUser(1);
            sqlSession.commit();
        }
    }
}

7. 运行测试

在 IDE 中运行 MyBatisTest 类中的测试方法,确保 MyBatis 配置正确并且能够正常操作数据库。

8. 总结

通过本文的介绍,你已经学会了如何在 Java 项目中配置和使用 MyBatis 框架。MyBatis 提供了灵活的 SQL 映射和强大的数据库操作能力,使得开发者能够更加高效地进行数据库操作。希望本文对你有所帮助,祝你在使用 MyBatis 的过程中取得成功!

推荐阅读:
  1. Mybatis generator config配置
  2. MyBatis Cache配置

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java mybatis

上一篇:Java Mybatis框架怎么应用

下一篇:Redis实现短信登录的企业实例分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》