第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Mybatis持久層框架學(xué)習(xí):入門與實(shí)戰(zhàn)指南

標(biāo)簽:
Java 數(shù)據(jù)庫
概述

Mybatis是一个强大的持久层框架,支持自定义SQL和存储过程,简化了数据库操作。本文将详细介绍Mybatis的基本概念、环境搭建以及核心组件,帮助你全面了解Mybatis持久层框架学习。

Mybatis简介与环境搭建

Mybatis是一个优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。Mybatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集,使得开发人员能将更多精力放在业务逻辑上。本文将详细介绍Mybatis的基本概念、开发环境配置与搭建,以及Mybatis的核心组件介绍。

Mybatis的基本概念

Mybatis通过使用XML或注解来配置和映射原生类型、接口和JavaPojo(持久化对象)之间的交互。Mybatis的核心特性包括:

  • SQL映射文件:使用XML文件描述SQL语句。
  • 动态SQL:支持自定义SQL语句,可以根据需要动态更改SQL语句。
  • 参数映射:自动将Java方法参数映射为SQL语句中的参数。
  • 结果映射:自动将SQL语句执行的结果映射到Java对象。
  • 扩展性:可以通过插件机制扩展Mybatis的功能。
Mybatis的基本使用

Mybatis的基本使用包括映射文件的编写、SQL语句的配置与执行、参数传递与结果映射。下面通过一个示例来展示如何实现这些功能。

映射文件的编写

Mybatis使用XML文件描述SQL语句。以下是一个简单的映射文件示例:

<mapper namespace="com.example.mapper.UserMapper">
    <select id="selectUser" resultType="com.example.model.User">
        SELECT * FROM users WHERE id = #{id}
    </select>
</mapper>

SQL语句的配置与执行

在Java代码中,可以通过SqlSession执行SQL语句:

import org.apache.ibatis.session.SqlSession;

public class MyBatisExample {
    public static void main(String[] args) {
        SqlSession session = // 获取SqlSession实例
        User user = session.selectOne("com.example.mapper.UserMapper.selectUser", 1);
        // 打印用户信息
        System.out.println(user);
    }
}

参数传递与结果映射

Mybatis支持参数传递和结果映射。如下所示:

<select id="selectUser" parameterType="int" resultType="com.example.model.User">
    SELECT * FROM users WHERE id = #{id}
</select>
User user = session.selectOne("com.example.mapper.UserMapper.selectUser", 1);
动态SQL

动态SQL允许根据不同的条件动态生成SQL语句。Mybatis提供了ifchoosewhenotherwiseforeach等标签来实现动态SQL。

if标签示例

<select id="selectUserById" resultType="com.example.model.User">
    SELECT * FROM users WHERE 1=1
    <if test="id != null">
        AND id = #{id}
    </if>
    <if test="name != null">
        AND name = #{name}
    </if>
</select>

foreach标签示例

<select id="selectUsersByIds" resultType="com.example.model.User">
    SELECT * FROM users WHERE id IN
    <foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
        #{item}
    </foreach>
</select>
Mybatis的高级特性

关联映射

关联映射允许一个对象关联另一个对象。例如,用户对象可以关联订单对象:

<association property="orders" javaType="java.util.List" column="user_id" select="selectOrderById"/>

分步查询

Mybatis支持延迟加载和手动加载。延迟加载允许在需要时加载关联数据,手动加载则允许显式加载关联数据。

// 延迟加载
session.selectList("com.example.mapper.UserMapper.selectUser", 1);

// 手动加载
User user = session.selectOne("com.example.mapper.UserMapper.selectUser", 1);
user.getOrders();

集成Spring框架

Mybatis可以与Spring框架集成,通过Spring管理SqlSessionFactory和SqlSession。

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="configLocation" value="classpath:mybatis-config.xml"/>
    <property name="mapperLocations" value="classpath:mapper/*.xml"/>
</bean>
开发环境配置与搭建

依赖配置

在进行Mybatis开发之前,需要先配置好开发环境。以下为示例项目中使用的Maven依赖配置:

<dependencies>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.4.6</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.47</version>
    </dependency>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>5.7.0</version>
        <scope>test</scope>
    </dependency>
</dependencies>

数据库配置

Mybatis的配置文件mybatis-config.xml包含数据库连接信息以及其他配置项。下面是一个简单的配置示例:

<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/mydb" />
                <property name="username" value="root" />
                <property name="password" value="password" />
            </dataSource>
        </environment>
    </environments>
</configuration>

Java代码配置

接下来,编写Java代码来加载Mybatis配置并执行SQL查询。这里使用简单的方法来创建SqlSessionFactory实例和获取SqlSession。

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 MyBatisExample {
    public static void main(String[] args) throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession session = sqlSessionFactory.openSession();
        // 使用session进行数据库操作
    }
}
Mybatis的核心组件介绍
  1. SqlSessionFactory:SqlSessionFactory是创建SqlSession的工厂,它是线程不安全的。可以使用SqlSessionFactoryBuilder来创建SqlSessionFactory。

  2. SqlSession:SqlSession代表Mybatis与数据库交互的会话,可以执行SQL语句并返回映射的结果。SqlSession是线程不安全的,每次数据库操作结束后应关闭SqlSession。

  3. Mapper:Mapper接口或Mapper XML文件用于定义SQL语句。Mapper XML文件中定义SQL语句以及相应的结果映射规则,而Mapper接口方法则与Mapper XML文件中的SQL语句相对应。

通过这些核心组件,Mybatis能够有效简化数据库操作,增强开发效率。

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

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

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消