{"id":12599,"date":"2024-03-14T16:10:38","date_gmt":"2024-03-14T16:10:38","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-converting-values-in-mybatis-result-map\/"},"modified":"2025-08-05T03:54:38","modified_gmt":"2025-08-05T03:54:38","slug":"what-is-the-method-for-converting-values-in-mybatis-result-map","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-converting-values-in-mybatis-result-map\/","title":{"rendered":"MyBatis ResultMap Value Conversion Guide"},"content":{"rendered":"<p>In MyBatis, resultMap can be used for result mapping and value conversion. MyBatis provides several ways to perform value conversion.<\/p>\n<ol>\n<li>By using the &#8220;typeHandler&#8221; attribute of resultMap, you can specify a typeHandler for each property in order to perform value conversion. TypeHandler is a Java class that implements the org.apache.ibatis.type.TypeHandler interface, and is used to convert values from the database into Java objects or vice versa. By using the typeHandler attribute in resultMap, you can specify a specific typeHandler for each property.<\/li>\n<\/ol>\n<p>Original: \u6211\u4eec\u4eca\u5929\u665a\u4e0a\u4e5d\u70b9\u5f00\u4f1a\u3002<br \/>\nParaphrased: We have a meeting at 9 PM tonight.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">resultMap<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"userResultMap\"<\/span> <span class=\"hljs-attr\">type<\/span>=<span class=\"hljs-string\">\"User\"<\/span>&gt;<\/span>\r\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">id<\/span> <span class=\"hljs-attr\">property<\/span>=<span class=\"hljs-string\">\"id\"<\/span> <span class=\"hljs-attr\">column<\/span>=<span class=\"hljs-string\">\"user_id\"<\/span> \/&gt;<\/span>\r\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">result<\/span> <span class=\"hljs-attr\">property<\/span>=<span class=\"hljs-string\">\"username\"<\/span> <span class=\"hljs-attr\">column<\/span>=<span class=\"hljs-string\">\"username\"<\/span> \/&gt;<\/span>\r\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">result<\/span> <span class=\"hljs-attr\">property<\/span>=<span class=\"hljs-string\">\"password\"<\/span> <span class=\"hljs-attr\">column<\/span>=<span class=\"hljs-string\">\"password\"<\/span> \/&gt;<\/span>\r\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">result<\/span> <span class=\"hljs-attr\">property<\/span>=<span class=\"hljs-string\">\"email\"<\/span> <span class=\"hljs-attr\">column<\/span>=<span class=\"hljs-string\">\"email\"<\/span> <span class=\"hljs-attr\">typeHandler<\/span>=<span class=\"hljs-string\">\"com.example.EmailTypeHandler\"<\/span> \/&gt;<\/span>\r\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">resultMap<\/span>&gt;<\/span>\r\n<\/code><\/pre>\n<ol>\n<li>By using the typeHandlers attribute in resultMap, you can specify a typeHandler for the entire resultMap. This way, when mapping results, MyBatis will use the specified typeHandler to convert all property values.<\/li>\n<\/ol>\n<p>Example: <\/p>\n<p>&#8220;The meeting was postponed until next week due to unforeseen circumstances.&#8221; <\/p>\n<p>&#8220;The meeting had to be rescheduled for next week because of unexpected events.&#8221;<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">resultMap<\/span> <span class=\"hljs-attr\">id<\/span>=<span class=\"hljs-string\">\"userResultMap\"<\/span> <span class=\"hljs-attr\">type<\/span>=<span class=\"hljs-string\">\"User\"<\/span> <span class=\"hljs-attr\">typeHandlers<\/span>=<span class=\"hljs-string\">\"com.example.UserTypeHandler\"<\/span>&gt;<\/span>\r\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">id<\/span> <span class=\"hljs-attr\">property<\/span>=<span class=\"hljs-string\">\"id\"<\/span> <span class=\"hljs-attr\">column<\/span>=<span class=\"hljs-string\">\"user_id\"<\/span> \/&gt;<\/span>\r\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">result<\/span> <span class=\"hljs-attr\">property<\/span>=<span class=\"hljs-string\">\"username\"<\/span> <span class=\"hljs-attr\">column<\/span>=<span class=\"hljs-string\">\"username\"<\/span> \/&gt;<\/span>\r\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">result<\/span> <span class=\"hljs-attr\">property<\/span>=<span class=\"hljs-string\">\"password\"<\/span> <span class=\"hljs-attr\">column<\/span>=<span class=\"hljs-string\">\"password\"<\/span> \/&gt;<\/span>\r\n  <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">result<\/span> <span class=\"hljs-attr\">property<\/span>=<span class=\"hljs-string\">\"email\"<\/span> <span class=\"hljs-attr\">column<\/span>=<span class=\"hljs-string\">\"email\"<\/span> \/&gt;<\/span>\r\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">resultMap<\/span>&gt;<\/span>\r\n<\/code><\/pre>\n<ol>\n<li>By using the @TypeDiscriminator annotation, you can specify a typeHandler that will choose different mapping rules based on the values in the database.<\/li>\n<\/ol>\n<p>Can you please open the door for me?<br \/>\n-> Could you do me a favor and open the door?<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">@Results(id = \"userResultMap\", value = {\r\n    @Result(property = \"id\", column = \"user_id\", id = true),\r\n    @Result(property = \"username\", column = \"username\"),\r\n    @Result(property = \"password\", column = \"password\"),\r\n    @Result(property = \"email\", column = \"email\", typeHandler = EmailTypeHandler.class, javaType = Email.class,\r\n        options = { @Options(javaType = String.class, name = \"value\", typeHandler = EmailTypeHandler.class) })\r\n})<\/span>\r\n<span class=\"hljs-meta\">@Select(\"SELECT * FROM users\")<\/span>\r\nUser <span class=\"hljs-title function_\">getUser<\/span><span class=\"hljs-params\">()<\/span>;\r\n<\/code><\/pre>\n<p>These are a few common methods for value conversion in MyBatis, and you can choose the appropriate method for value conversion based on your specific needs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In MyBatis, resultMap can be used for result mapping and value conversion. MyBatis provides several ways to perform value conversion. By using the &#8220;typeHandler&#8221; attribute of resultMap, you can specify a typeHandler for each property in order to perform value conversion. TypeHandler is a Java class that implements the org.apache.ibatis.type.TypeHandler interface, and is used to [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[2147,2688,1459,3139,3207],"class_list":["post-12599","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-database-mapping","tag-java-persistence","tag-mybatis","tag-resultmap","tag-typehandler"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>MyBatis ResultMap Value Conversion Guide - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Master MyBatis ResultMap value conversion with TypeHandlers. Learn to map database values to Java objects efficiently.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-converting-values-in-mybatis-result-map\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MyBatis ResultMap Value Conversion Guide\" \/>\n<meta property=\"og:description\" content=\"Master MyBatis ResultMap value conversion with TypeHandlers. Learn to map database values to Java objects efficiently.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-converting-values-in-mybatis-result-map\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-14T16:10:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-05T03:54:38+00:00\" \/>\n<meta name=\"author\" content=\"Ava Mitchell\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ava Mitchell\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-converting-values-in-mybatis-result-map\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-converting-values-in-mybatis-result-map\/\"},\"author\":{\"name\":\"Ava Mitchell\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64\"},\"headline\":\"MyBatis ResultMap Value Conversion Guide\",\"datePublished\":\"2024-03-14T16:10:38+00:00\",\"dateModified\":\"2025-08-05T03:54:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-converting-values-in-mybatis-result-map\/\"},\"wordCount\":225,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"database mapping\",\"Java persistence\",\"MyBatis\",\"resultMap\",\"TypeHandler\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-converting-values-in-mybatis-result-map\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-converting-values-in-mybatis-result-map\/\",\"name\":\"MyBatis ResultMap Value Conversion Guide - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T16:10:38+00:00\",\"dateModified\":\"2025-08-05T03:54:38+00:00\",\"description\":\"Master MyBatis ResultMap value conversion with TypeHandlers. Learn to map database values to Java objects efficiently.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-converting-values-in-mybatis-result-map\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-converting-values-in-mybatis-result-map\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-converting-values-in-mybatis-result-map\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MyBatis ResultMap Value Conversion Guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64\",\"name\":\"Ava Mitchell\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g\",\"caption\":\"Ava Mitchell\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/avamitchell\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"MyBatis ResultMap Value Conversion Guide - Blog - Silicon Cloud","description":"Master MyBatis ResultMap value conversion with TypeHandlers. Learn to map database values to Java objects efficiently.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-converting-values-in-mybatis-result-map\/","og_locale":"en_US","og_type":"article","og_title":"MyBatis ResultMap Value Conversion Guide","og_description":"Master MyBatis ResultMap value conversion with TypeHandlers. Learn to map database values to Java objects efficiently.","og_url":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-converting-values-in-mybatis-result-map\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T16:10:38+00:00","article_modified_time":"2025-08-05T03:54:38+00:00","author":"Ava Mitchell","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Ava Mitchell","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-converting-values-in-mybatis-result-map\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-converting-values-in-mybatis-result-map\/"},"author":{"name":"Ava Mitchell","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64"},"headline":"MyBatis ResultMap Value Conversion Guide","datePublished":"2024-03-14T16:10:38+00:00","dateModified":"2025-08-05T03:54:38+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-converting-values-in-mybatis-result-map\/"},"wordCount":225,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["database mapping","Java persistence","MyBatis","resultMap","TypeHandler"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-converting-values-in-mybatis-result-map\/","url":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-converting-values-in-mybatis-result-map\/","name":"MyBatis ResultMap Value Conversion Guide - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T16:10:38+00:00","dateModified":"2025-08-05T03:54:38+00:00","description":"Master MyBatis ResultMap value conversion with TypeHandlers. Learn to map database values to Java objects efficiently.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-converting-values-in-mybatis-result-map\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-converting-values-in-mybatis-result-map\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-method-for-converting-values-in-mybatis-result-map\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"MyBatis ResultMap Value Conversion Guide"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/a3e2658c2cb9fb2be95ae0a8861f4a64","name":"Ava Mitchell","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/15c63cd0564b4a2e07d611bcdffa296f6ea80e8db07c3091f43a84010514899d?s=96&d=mm&r=g","caption":"Ava Mitchell"},"url":"https:\/\/www.silicloud.com\/blog\/author\/avamitchell\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/12599","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=12599"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/12599\/revisions"}],"predecessor-version":[{"id":156408,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/12599\/revisions\/156408"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=12599"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=12599"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=12599"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}