亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Mybatis持久層框架項目實戰:從零開始構建高效數據訪問層

標簽:
雜七雜八

1. Mybatis框架简介

Mybatis是一个基于Java的持久层框架,它提供了一种在Java与数据库之间高效通信的途径。Mybatis的核心概念包括:SQL映射、动态SQL、结果映射、缓存机制等。

安装Mybatis并配置环境

首先,确保你的开发环境中安装了Java开发工具。接下来,访问Mybatis的官方网站下载Mybatis所需依赖。

# 添加Maven依赖
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.7</version>
</dependency>

配置Mybatis的核心配置文件mybatis-config.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>
</configuration>

2. 基本配置与使用

2.1 配置Mybatis的映射文件:

创建UserMapper.xml文件并编写SQL语句映射:

<?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="selectAllUsers" resultType="com.example.model.User">
        SELECT * FROM user
    </select>
</mapper>

2.2** 使用Mybatis进行数据查询:

创建Java接口UserMapper.java

package com.example.mapper;

import com.example.model.User;
import java.util.List;

public interface UserMapper {
    List<User> selectAllUsers();
}

创建配置类SqlSessionFactoryConfig.java

package com.example.config;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;

public class SqlSessionFactoryConfig {
    private static SqlSessionFactory sqlSessionFactory;

    public static SqlSessionFactory getSqlSessionFactory() {
        if (sqlSessionFactory == null) {
            try {
                InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
                sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            } catch (IOException e) {
                throw new RuntimeException("Failed to create SqlSessionFactory", e);
            }
        }
        return sqlSessionFactory;
    }
}

3. 动态SQL与XML映射

UserMapper.xml中使用动态SQL:

<mapper namespace="com.example.mapper.UserMapper">
    <select id="selectUsersByCondition" parameterType="com.example.model.UserCondition" resultMap="userResultMap">
        SELECT * FROM user
        <if test="name != null">
            WHERE name = #{name}
        </if>
        <if test="age != null">
            AND age = #{age}
        </if>
    </select>
</mapper>

4. 结果映射与对象绑定

创建User.java类:

package com.example.model;

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

    // 省略getter和setter方法,仅展示属性定义

    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 int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

创建UserResultMap.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">
    <resultMap id="userResultMap" type="com.example.model.User">
        <id property="id" column="id"/>
        <result property="name" column="name"/>
        <result property="age" column="age"/>
    </resultMap>
</mapper>

5. 缓存机制

mybatis-config.xml中配置缓存:

<settings>
    <setting name="cacheEnabled" value="true"/>
    <setting name="localCacheScope" value="SESSION"/>
</settings>

6. 案例实战

构建一个简单的项目实例,整合Mybatis与数据库操作。这个例子包括创建数据库表、填充数据、查询数据并更新数据。

创建数据库表

在MySQL中执行以下SQL:

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

填充数据

INSERT INTO user (name, age) VALUES ('Alice', 25);
INSERT INTO user (name, age) VALUES ('Bob', 30);

查询数据并更新数据

import com.example.mapper.UserMapper;
import com.example.model.User;

public class UserController {
    private final UserMapper userMapper;

    public UserController(UserMapper userMapper) {
        this.userMapper = userMapper;
    }

    public void listUsers() {
        List<User> users = userMapper.selectAllUsers();
        for (User user : users) {
            System.out.println(user);
        }
    }

    public void updateUser() {
        User user = new User();
        user.setId(1);
        user.setName("Charlie");
        userMapper.updateUser(user);
    }
}

通过以上步骤,从零开始构建了一个简单的Mybatis项目,实践了配置、数据访问、动态SQL、结果映射、缓存机制,并通过案例展示了如何在实际环境中使用Mybatis解决数据访问问题。Mybatis的灵活性和强大功能使得数据访问层的实现变得高效和可维护。

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消