皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

fastmybatis 1.0.11 发布,增强团队协作

fastmybatis 1.0.11 发布,此次更新内容有:

  • 增强 Mapper.xml,不同 Mapper 文件可指定同一个 namespace,最终会合并 doc
  • 优化属性拷贝

本次更新重点是 Mapper.xml 增强,多文件可指定同一个 namespace。

在以往的开发过程中,一个 Mapper 对应一个 xml 文件(namespace)。如果多人同时在一个 xml 中写 SQL 的话会造成各种冲突(虽然能够最终被解决)。

fastmybatis 打破这种常规,允许不同的 xml 文件定义相同的 namespace,程序启动时会自动把他们的内容合并到同一个文件当中去。

  • 张三的 UserMapper_zs.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.mayapp.mapper.TUserMapper">

    <select id="selectByName" parameterType="String" resultMap="baseResultMap">
        select * from t_user t where t.username = #{username} limit 1
    </select>

</mapper>
  • 李四的 UserMapper_ls.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.mayapp.mapper.TUserMapper">

    <select id="updateUser" parameterType="String" resultMap="baseResultMap">
        update t_user set username = #{username} where id=#{id}
    </select>

</mapper>

最终会合并成

<?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.mayapp.mapper.TUserMapper">
    <!-- 张三部分 -->
    <select id="selectByName" parameterType="String" resultMap="baseResultMap">
        select * from t_user t where t.username = #{username} limit 1
    </select>

    <!-- 李四部分 -->
    <select id="updateUser" parameterType="String" resultMap="baseResultMap">
        update t_user set username = #{username} where id=#{id}
    </select>

</mapper>

这样也体现了开闭原则,即新增一个功能只需要新增一个文件就行,不需要修改原来的文件。

如果 SQL 写多了还可以把它们进行分类,放到不同的 xml 中,便于管理。

注: 合并动作是在启动时进行的,并不会生成一个真实的文件。

关于 fastmybatis

fastmybatis 是一个 mybatis 开发框架,其宗旨为:简单、快速、有效。

  • 零配置快速上手
  • 无需编写 xml 文件即可完成 CRUD 操作
  • 支持 mysql,sqlserver,oracle,postgresql,sqlite
  • 支持自定义 sql,sql 语句可写在注解中或 xml 中
  • 支持与 spring-boot 集成,依赖 starter 即可
  • 轻量级,无侵入性,是官方 mybatis 的一种扩展

fastmybatis 与 MyBatis generator 对比

转自 https://www.oschina.net/news/98435/fastmybatis-1-0-11-released

分享到:更多 ()