{"id":20090,"date":"2024-03-15T19:56:38","date_gmt":"2024-03-15T19:56:38","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-create-database-tables-in-mybatis\/"},"modified":"2024-03-21T17:15:31","modified_gmt":"2024-03-21T17:15:31","slug":"how-to-dynamically-create-database-tables-in-mybatis","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-create-database-tables-in-mybatis\/","title":{"rendered":"How to dynamically create database tables in MyBatis?"},"content":{"rendered":"<p>MyBatis is an open-source persistence framework for persisting Java objects, but it does not handle the creation of database tables. Database tables are usually created within the database management system.<\/p>\n<p>Before using MyBatis, if you want to create database tables, you can use tools provided by database management systems (such as MySQL&#8217;s SQL statements, Navicat, etc.) to create tables. You can use SQL statements similar to the following:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">CREATE<\/span> <span class=\"hljs-keyword\">TABLE<\/span> IF <span class=\"hljs-keyword\">NOT<\/span> <span class=\"hljs-keyword\">EXISTS<\/span> `<span class=\"hljs-keyword\">user<\/span>` (\r\n  `id` <span class=\"hljs-type\">INT<\/span>(<span class=\"hljs-number\">11<\/span>) <span class=\"hljs-keyword\">NOT<\/span> <span class=\"hljs-keyword\">NULL<\/span> AUTO_INCREMENT,\r\n  `name` <span class=\"hljs-type\">VARCHAR<\/span>(<span class=\"hljs-number\">50<\/span>) <span class=\"hljs-keyword\">DEFAULT<\/span> <span class=\"hljs-keyword\">NULL<\/span>,\r\n  `age` <span class=\"hljs-type\">INT<\/span>(<span class=\"hljs-number\">11<\/span>) <span class=\"hljs-keyword\">DEFAULT<\/span> <span class=\"hljs-keyword\">NULL<\/span>,\r\n  <span class=\"hljs-keyword\">PRIMARY<\/span> KEY (`id`)\r\n) ENGINE<span class=\"hljs-operator\">=<\/span>InnoDB <span class=\"hljs-keyword\">DEFAULT<\/span> CHARSET<span class=\"hljs-operator\">=<\/span>utf8;\r\n<\/code><\/pre>\n<p>The above is creating a table named user, which includes fields for id, name, and age.<\/p>\n<p>It is generally not recommended to create database tables in Java code using MyBatis, as changes to table structures should typically be handled by a database administrator or through database scripts. However, if it is necessary to dynamically create database tables in Java code, you can use MyBatis&#8217;s SqlSession to execute SQL statements.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-type\">SqlSession<\/span> <span class=\"hljs-variable\">sqlSession<\/span> <span class=\"hljs-operator\">=<\/span> sqlSessionFactory.openSession();\r\n<span class=\"hljs-keyword\">try<\/span> {\r\n    <span class=\"hljs-type\">Connection<\/span> <span class=\"hljs-variable\">connection<\/span> <span class=\"hljs-operator\">=<\/span> sqlSession.getConnection();\r\n    <span class=\"hljs-type\">Statement<\/span> <span class=\"hljs-variable\">statement<\/span> <span class=\"hljs-operator\">=<\/span> connection.createStatement();\r\n    statement.executeUpdate(<span class=\"hljs-string\">\"CREATE TABLE IF NOT EXISTS `user` (  `id` INT(11) NOT NULL AUTO_INCREMENT,  `name` VARCHAR(50) DEFAULT NULL,  `age` INT(11) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;\"<\/span>);\r\n    connection.commit();\r\n} <span class=\"hljs-keyword\">finally<\/span> {\r\n    sqlSession.close();\r\n}\r\n<\/code><\/pre>\n<p>The code above uses SqlSession to establish a connection to the database and uses Statement to execute SQL statements for creating a table. It is important to be cautious when using this method, as dynamically creating tables may pose potential risks and issues.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>MyBatis is an open-source persistence framework for persisting Java objects, but it does not handle the creation of database tables. Database tables are usually created within the database management system. Before using MyBatis, if you want to create database tables, you can use tools provided by database management systems (such as MySQL&#8217;s SQL statements, Navicat, [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-20090","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"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>How to dynamically create database tables in MyBatis? - Blog - Silicon Cloud<\/title>\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\/how-to-dynamically-create-database-tables-in-mybatis\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to dynamically create database tables in MyBatis?\" \/>\n<meta property=\"og:description\" content=\"MyBatis is an open-source persistence framework for persisting Java objects, but it does not handle the creation of database tables. Database tables are usually created within the database management system. Before using MyBatis, if you want to create database tables, you can use tools provided by database management systems (such as MySQL&#8217;s SQL statements, Navicat, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-create-database-tables-in-mybatis\/\" \/>\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-15T19:56:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T17:15:31+00:00\" \/>\n<meta name=\"author\" content=\"Benjamin Taylor\" \/>\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=\"Benjamin Taylor\" \/>\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\/how-to-dynamically-create-database-tables-in-mybatis\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-create-database-tables-in-mybatis\/\"},\"author\":{\"name\":\"Benjamin Taylor\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9\"},\"headline\":\"How to dynamically create database tables in MyBatis?\",\"datePublished\":\"2024-03-15T19:56:38+00:00\",\"dateModified\":\"2024-03-21T17:15:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-create-database-tables-in-mybatis\/\"},\"wordCount\":190,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-create-database-tables-in-mybatis\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-create-database-tables-in-mybatis\/\",\"name\":\"How to dynamically create database tables in MyBatis? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T19:56:38+00:00\",\"dateModified\":\"2024-03-21T17:15:31+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-create-database-tables-in-mybatis\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-create-database-tables-in-mybatis\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-create-database-tables-in-mybatis\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to dynamically create database tables in MyBatis?\"}]},{\"@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\/ac801fe9549a25960ce48aa2e0a691c9\",\"name\":\"Benjamin Taylor\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g\",\"caption\":\"Benjamin Taylor\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/benjamintaylor\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to dynamically create database tables in MyBatis? - Blog - Silicon Cloud","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\/how-to-dynamically-create-database-tables-in-mybatis\/","og_locale":"en_US","og_type":"article","og_title":"How to dynamically create database tables in MyBatis?","og_description":"MyBatis is an open-source persistence framework for persisting Java objects, but it does not handle the creation of database tables. Database tables are usually created within the database management system. Before using MyBatis, if you want to create database tables, you can use tools provided by database management systems (such as MySQL&#8217;s SQL statements, Navicat, [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-create-database-tables-in-mybatis\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T19:56:38+00:00","article_modified_time":"2024-03-21T17:15:31+00:00","author":"Benjamin Taylor","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Benjamin Taylor","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-create-database-tables-in-mybatis\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-create-database-tables-in-mybatis\/"},"author":{"name":"Benjamin Taylor","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9"},"headline":"How to dynamically create database tables in MyBatis?","datePublished":"2024-03-15T19:56:38+00:00","dateModified":"2024-03-21T17:15:31+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-create-database-tables-in-mybatis\/"},"wordCount":190,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-create-database-tables-in-mybatis\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-create-database-tables-in-mybatis\/","name":"How to dynamically create database tables in MyBatis? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T19:56:38+00:00","dateModified":"2024-03-21T17:15:31+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-create-database-tables-in-mybatis\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-dynamically-create-database-tables-in-mybatis\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-dynamically-create-database-tables-in-mybatis\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to dynamically create database tables in MyBatis?"}]},{"@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\/ac801fe9549a25960ce48aa2e0a691c9","name":"Benjamin Taylor","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g","caption":"Benjamin Taylor"},"url":"https:\/\/www.silicloud.com\/blog\/author\/benjamintaylor\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/20090","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\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=20090"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/20090\/revisions"}],"predecessor-version":[{"id":53868,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/20090\/revisions\/53868"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=20090"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=20090"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=20090"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}