Mybatis 简单用例

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

在 MyBatis 中,XML 配置文件是用来定义 SQL 映射和结果的。它通常包含以下几个部分:

  1. mapper:定义 SQL 映射,包括 SQL 语句、参数类型、返回值类型等。
  2. resultMap:定义结果集的映射规则,包括列名、属性名、类型等。
  3. typeAliases:定义别名,用于简化 Java 类型名称。

下面是一个 MyBatis 的 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">  
  
    <!-- 插入数据 -->  
    <insert id="insertUser" parameterType="com.example.model.User">  
        INSERT INTO user (username, password, email)  
        VALUES (#{username}, #{password}, #{email})  
    </insert>  
  
    <!-- 根据ID查询数据 -->  
    <select id="getUserById" parameterType="int" resultType="com.example.model.User">  
        SELECT * FROM user WHERE id = #{id}  
    </select>  
  
    <!-- 查询所有数据 -->  
    <select id="getAllUsers" resultType="com.example.model.User">  
        SELECT * FROM user  
    </select>  
  
    <!-- 更新数据 -->  
    <update id="updateUser" parameterType="com.example.model.User">  
        UPDATE user SET username = #{username}, password = #{password}, email = #{email} WHERE id = #{id}  
    </update>  
  
    <!-- 删除数据 -->  
    <delete id="deleteUserById">  
        DELETE FROM user WHERE id = #{id}  
    </delete>  
</mapper>

在这个例子中,我们定义了一个 UserMapper,它包含了一些基本的 CRUD 操作。这些操作通过 XML 中的 <insert><select><update><delete> 标签来定义。这些标签的属性如 idparameterType 和 resultType 是必要的。id 是唯一标识符,parameterType 是传入参数的类型,resultType 是返回结果的类型。其他一些属性如 parameterMapresultMapsql 等则是可选的。

1. 参数映射

在上述例子中,我们使用了parameterType属性来指定传入参数的类型。MyBatis 支持多种类型的参数映射,包括:

  • 基本类型:如 int, long, String 等。
  • JavaBean 或 POJO(Plain Old Java Objects):可以为多个列映射到一个 JavaBean 属性。
  • Map:传入一个包含键值对的 Map,其中键是列名,值是对应的数据。
  • 数组或集合:可以传入数组或 List 类型的参数。

2. 结果映射

在 SQL 查询中,可以使用resultType属性来指定返回结果的类型。MyBatis 支持多种结果映射方式:

  • 单个列映射到单一属性:直接映射列名到属性。
  • 单个列映射到多个属性:例如,将一个字符串列分割成多个部分并映射到多个属性。
  • 多个列映射到单个属性:例如,将多个字符串列合并为一个长字符串。
  • 多个列映射到多个属性:这是默认的结果映射方式,直接将列名映射到属性名。

3. 结果映射高级特性

  • resultMap:更复杂的映射规则可以使用 resultMap 来定义,它可以包含列名、属性名、类型、结果类型等详细信息。
  • association 和 collection:这些标签可以用于处理一对一、一对多或多对多关系。

4. XML 配置文件的位置

MyBatis 的 XML 配置文件通常放在项目的资源文件夹下,例如 src/main/resources。文件名通常为 mybatis-config.xml,但可以根据项目需要自定义。

5. 动态 SQL

MyBatis 还支持动态 SQL,允许根据条件构建不同的 SQL 语句。例如,可以使用 <if><choose><when><otherwise> 等标签来根据条件动态生成 SQL 语句

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值