下面我为大家详细讲解“mybatis那些约定的配置你真的都了解吗(经验总结)”的完整攻略。
1. 前言
Mybatis 是一款优秀的 ORM 框架,具有使用简单、性能优异等特点。Mybatis 中有许多约定的配置,如果掌握了这些配置,会让我们在开发中更加得心应手。接下来,我将为大家介绍这些约定的配置。
2. 约定的配置
2.1. 命名空间
在 Mapper 的 XML 中,我们可以通过 namespace
属性指定命名空间。
示例代码:
<!-- 指定命令空间 -->
<mapper namespace="com.example.mapper.UserMapper">
<!-- Mapper 映射配置 -->
</mapper>
2.2. SQL 映射语句
Mybatis 中的 SQL 映射语句有两种方式:XML 映射和注解映射。在 XML 映射中,我们可以使用 select
、insert
、update
、delete
四个标签来定义 SQL 映射语句。而在注解映射中,我们可以使用 @Select
、@Insert
、@Update
、@Delete
四个注解来定义 SQL 映射语句。
示例代码:
<!-- XML 映射 -->
<select id="selectUserById" parameterType="int" resultType="com.example.pojo.User">
SELECT * FROM user WHERE id = #{id}
</select>
<!-- 注解映射 -->
@Select("SELECT * FROM user WHERE id = #{id}")
User selectUserById(int id);
2.3. 参数传递
在 Mapper 中声明的 SQL 映射语句,可以通过 parameterType
或者 @Param
来声明参数。
示例代码:
<!-- 定义参数的类型 -->
<select id="selectUserById" parameterType="int" resultType="com.example.pojo.User">
SELECT * FROM user WHERE id = #{id}
</select>
<!-- 使用 @Param 定义参数 -->
@Select("SELECT * FROM user WHERE name = #{username} AND age = #{age}")
User selectUserByNameAndAge(@Param("username") String username, @Param("age") int age);
2.4. 结果集映射
Mybatis 中可以通过 resultType
或者 resultMap
来定义一个 SQL 映射查询的结果集。resultType
定义了一个简单的 Java 对象来映射结果集中的一行数据,而 resultMap
则可以建立一对一和一对多的映射关系。
示例代码:
<!-- 定义结果集 -->
<select id="selectUserById" parameterType="int" resultType="com.example.pojo.User">
SELECT * FROM user WHERE id = #{id}
</select>
<!-- 定义 resultMap -->
<resultMap id="userResultMap" type="com.example.pojo.User">
<id column="id" property="id"/>
<result column="username" property="username"/>
<result column="age" property="age"/>
<!-- 定义关联关系 -->
<collection property="orders" ofType="com.example.pojo.Order">
<id column="order_id" property="orderId"/>
<result column="order_name" property="orderName"/>
<result column="order_price" property="orderPrice"/>
</collection>
</resultMap>
2.5. 自动映射
Mybatis 可以在查询返回结果集时,自动将列名映射成对应的 Java 对象的属性。
示例代码:
<!-- 开启自动映射 -->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<!-- 可以通过下划线方式查询字段 -->
<select id="selectUserById" parameterType="int" resultType="com.example.pojo.User">
SELECT id, user_name, age FROM user WHERE id = #{id}
</select>
<!-- 这里查询结果可以直接映射成 User 对象的属性 -->
User{id=1, username='张三', age=20}
3. 总结
以上就是 Mybatis 中的几个约定的配置及使用示例。掌握这些约定的配置,可以帮助我们更快速地开发 Mybatis 应用程序。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mybatis那些约定的配置你真的都了解吗(经验总结) - Python技术站