mybaties 的一些点
resultMap
resutType
mybaties缓存
待续
mybaties对应关系是bean和数据库字段的对应。
1、mybaties 的返回值是对象的话定义为resultMap="resultMap"
值resultMap在文件首部进行重定义避免返回值为空,现在对象存储都是hashmap如下所示
<resultMap id="resultMap" type="java.util.HashMap">
<result column="USER_ID" property="userId" jdbcType="BIGINT" />
<result column="USER_ERP" property="erp" jdbcType="VARCHAR" />
<result column="USER_NAME" property="name" jdbcType="VARCHAR" />
<result column="USER_EMAIL" property="email" jdbcType="VARCHAR" />
<result column="USER_PHONE" property="phone" jdbcType="VARCHAR" />
<result column="USER_ROLE" property="role" jdbcType="VARCHAR" />
</resultMap>
<insert id="add" parameterType="com.jd.app.server.irp.common.beans.User">
INSERT INTO irp_user (
USER_ID,
USER_ERP,
USER_NAME,
USER_EMAIL,
USER_PHONE,
USER_ROLE)
VALUES (
#{userId,jdbcType=BIGINT},
#{erp,jdbcType=VARCHAR},
#{name,jdbcType=VARCHAR},
#{email,jdbcType=VARCHAR},
#{phone,jdbcType=VARCHAR},
#{role,jdbcType=VARCHAR})
</insert>
<select id="getUserByErp" resultMap="resultMap" parameterType="java.lang.String">
SELECT USER_ID,
USER_ERP,
USER_NAME,
USER_EMAIL,
USER_PHONE,
USER_ROLE
FROM irp_user
WHERE 1=1
AND USER_ERP = #{erp,jdbcType=VARCHAR}
</select>
2.mybaties分页dao不需要包含分页字段,sql传值需要注意到将分页值传参数为#{0},#{1}如下所示
<select id="getUsersByPage" resultMap="resultMap" parameterType="java.lang.Integer">
SELECT USER_ID,
USER_ERP,
USER_NAME,
USER_EMAIL,
USER_PHONE,
USER_ROLE
FROM irp_user
LIMIT #{0},#{1}
</select>
3.ibaties获取单个对象
ibaties 需要bean对象和xml中的字段对应,需要字段生成映射。通过对应关系建立bean和数据库的
对应关系。
<resultMap id="userMap" type="com.jd.app.server.irp.common.beans.User" >
<id column="USER_ID" property="userId" jdbcType="BIGINT" />
<result column="USER_ERP" property="erp" jdbcType="VARCHAR" />
<result column="USER_NAME" property="name" jdbcType="VARCHAR" />
<result column="USER_EMAIL" property="email" jdbcType="VARCHAR" />
<result column="USER_PHONE" property="phone" jdbcType="VARCHAR" />
<result column="USER_ROLE" property="role" jdbcType="VARCHAR" />
</resultMap>
<select id="getUserById" resultMap="userMap" parameterType="java.lang.Long">
SELECT * FROM irp_user WHERE 1=1 AND USER_ID = #{userId,jdbcType=BIGINT}
</select>
userMap的type类型为bean这样实现了bean和数据库的关联对应。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?