摘要:每個微服務僅關注于完成一件任務并很好地完成該任務。在一個微服務的開發過程中很可能只關注對單表的操作。本文將說到在的項目中如何去配置形式和配置類形式和使用以及生成代碼的兩種方式形式和注解形式,在中更推薦去使用注解的形式。
介紹
Mybatis Generator(MBG)是Mybatis的一個代碼生成工具。MBG解決了對數據庫操作有最大影響的一些CRUD操作,很大程度上提升開發效率。如果需要聯合查詢仍然需要手寫sql。相信很多人都聽說過微服務,各個微服務之間是松耦合的。每個微服務僅關注于完成一件任務并很好地完成該任務。在一個微服務的開發過程中很可能只關注對單表的操作。所以MBG在開發過程中可以快速的生成代碼提升開發效率。
本文將說到在springboot的項目中如何去配置(XML形式和Java配置類形式)和使用MBG以及MBG生成代碼的兩種方式(XML形式和注解形式),在springboot中更推薦去使用注解的形式。
MBG配置添加依賴
org.mybatis.generator mybatis-generator-core 1.3.5
2.XML配置
配置示例:在新建springboot項目的根目錄下創建mbg.xml文件。
配置詳解
生成代碼:
public class TestMGB { public static void main(String[] args) throws IOException, XMLParserException, InvalidConfigurationException, SQLException, InterruptedException { Listwarnings =new ArrayList (); boolean overwrite=true; File configFile=new File("mgb.xml"); ConfigurationParser cp=new ConfigurationParser(warnings); Configuration config=cp.parseConfiguration(configFile); DefaultShellCallback callback=new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator=new MyBatisGenerator(config,callback,warnings); myBatisGenerator.generate(null); } }
3.Java配置示例
基于Java的配置是和上面的XML配置是相對應的。直接運行該示例即可生成數據表對于的pojo,mapper接口和一個sqlprovider Java類。
package com.mgb.test; import java.util.ArrayList; import java.util.List; import org.mybatis.generator.api.MyBatisGenerator; import org.mybatis.generator.config.CommentGeneratorConfiguration; import org.mybatis.generator.config.Configuration; import org.mybatis.generator.config.Context; import org.mybatis.generator.config.JDBCConnectionConfiguration; import org.mybatis.generator.config.JavaClientGeneratorConfiguration; import org.mybatis.generator.config.JavaModelGeneratorConfiguration; import org.mybatis.generator.config.JavaTypeResolverConfiguration; import org.mybatis.generator.config.ModelType; import org.mybatis.generator.config.PluginConfiguration; import org.mybatis.generator.config.SqlMapGeneratorConfiguration; import org.mybatis.generator.config.TableConfiguration; import org.mybatis.generator.internal.DefaultShellCallback; public class MGBConfig { public static void main(String[] args) throws Exception{ //配置xml配置項 List使用warnings = new ArrayList (); boolean overwrite = true; Configuration config = new Configuration(); Context context = new Context(ModelType.CONDITIONAL); context.setTargetRuntime("MyBatis3"); context.setId("defaultContext"); //自動識別數據庫關鍵字,默認false,如果設置為true, //根據SqlReservedWords中定義的關鍵字列表;一般保留默認值,遇到數據庫關鍵字(Java關鍵字), //使用columnOverride覆蓋 context.addProperty("autoDelimitKeywords","true"); //生成的Java文件的編碼 context.addProperty("javaFileEncoding","utf-8"); context.addProperty("beginningDelimiter","`"); context.addProperty("endingDelimiter","`"); //格式化java代碼 context.addProperty("javaFormatter","org.mybatis.generator.api.dom.DefaultJavaFormatter"); //格式化xml代碼 context.addProperty("xmlFormatter","org.mybatis.generator.api.dom.DefaultXmlFormatter"); //格式化信息 PluginConfiguration pluginConfiguration = new PluginConfiguration(); pluginConfiguration.setConfigurationType("org.mybatis.generator.plugins.SerializablePlugin"); pluginConfiguration.setConfigurationType("org.mybatis.generator.plugins.ToStringPlugin"); context.addPluginConfiguration(pluginConfiguration); //設置是否去除生成注釋 CommentGeneratorConfiguration commentGeneratorConfiguration = new CommentGeneratorConfiguration(); commentGeneratorConfiguration.addProperty("suppressAllComments","true"); //commentGeneratorConfiguration.addProperty("suppressDate","true"); context.setCommentGeneratorConfiguration(commentGeneratorConfiguration); //設置連接數據庫 JDBCConnectionConfiguration jdbcConnectionConfiguration = new JDBCConnectionConfiguration(); jdbcConnectionConfiguration.setDriverClass("com.mysql.jdbc.Driver"); jdbcConnectionConfiguration.setConnectionURL("jdbc:mysql://localhost:3306/definesys"); jdbcConnectionConfiguration.setPassword("welcome1"); jdbcConnectionConfiguration.setUserId("root"); context.setJdbcConnectionConfiguration(jdbcConnectionConfiguration); JavaTypeResolverConfiguration javaTypeResolverConfiguration = new JavaTypeResolverConfiguration(); //是否使用bigDecimal, false可自動轉化以下類型(Long, Integer, Short, etc.) javaTypeResolverConfiguration.addProperty("forceBigDecimals","false"); context.setJavaTypeResolverConfiguration(javaTypeResolverConfiguration); //生成實體類的地址 JavaModelGeneratorConfiguration javaModelGeneratorConfiguration = new JavaModelGeneratorConfiguration(); javaModelGeneratorConfiguration.setTargetPackage("com.mgb.domain"); javaModelGeneratorConfiguration.setTargetProject("src/main/java"); javaModelGeneratorConfiguration.addProperty("enableSubPackages","true"); javaModelGeneratorConfiguration.addProperty("trimStrings","true"); context.setJavaModelGeneratorConfiguration(javaModelGeneratorConfiguration); //生成的xml的地址 SqlMapGeneratorConfiguration sqlMapGeneratorConfiguration = new SqlMapGeneratorConfiguration(); sqlMapGeneratorConfiguration.setTargetProject("src/main/java"); sqlMapGeneratorConfiguration.setTargetPackage("com.mgb.mapper"); sqlMapGeneratorConfiguration.addProperty("enableSubPackages","true"); context.setSqlMapGeneratorConfiguration(sqlMapGeneratorConfiguration); //生成注解接口 JavaClientGeneratorConfiguration javaClientGeneratorConfiguration = new JavaClientGeneratorConfiguration(); javaClientGeneratorConfiguration.setTargetPackage("com.mgb.dao"); javaClientGeneratorConfiguration.setTargetProject("src/main/java"); //注解形式 ANNOTATEDMAPPER xml形式 XMLMAPPER javaClientGeneratorConfiguration.setConfigurationType("ANNOTATEDMAPPER"); javaClientGeneratorConfiguration.addProperty("enableSubPackages","true"); context.setJavaClientGeneratorConfiguration(javaClientGeneratorConfiguration); TableConfiguration tableConfiguration = new TableConfiguration(context); tableConfiguration.setTableName("user_info"); tableConfiguration.setCountByExampleStatementEnabled(true); tableConfiguration.setUpdateByExampleStatementEnabled(true); tableConfiguration.setDeleteByExampleStatementEnabled(true); tableConfiguration.setInsertStatementEnabled(true); tableConfiguration.setDeleteByPrimaryKeyStatementEnabled(true); context.addTableConfiguration(tableConfiguration); config.addContext(context); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); } }
package com.mgb.service; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.mgb.dao.UserInfoMapper; import com.mgb.domain.UserInfo; import com.mgb.domain.UserInfoExample; @Service public class UserService { @Autowired private UserInfoMapper userInfoMapper; /** * 按姓名查詢 * @param name * @return */ public ListgetUserByName(String name){ UserInfoExample uerInfoExample=new UserInfoExample(); uerInfoExample.createCriteria().andNameEqualTo(name); return userInfoMapper.selectByExample(uerInfoExample); } /** * 有條件的insert * @param userInfo * @return */ public Integer addUser(UserInfo userInfo) { return userInfoMapper.insertSelective(userInfo); } /** * 根據ID更新用戶信息 * @param userInfo * @return */ public Integer updateUser(UserInfo userInfo) { return userInfoMapper.updateByPrimaryKey(userInfo); } /** * 根據ID刪除用戶 * @param id * @return */ public Integer deleteUserById(Integer id) { return userInfoMapper.deleteByPrimaryKey(id); } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/72182.html
摘要:整合想著每次搭建新項目時框架都要從新搭建,基本常用的也就哪幾種,現在就來搭建一種常用的后臺框架,以后新開小項目可以直接拿來使用項目整體結構圖新建空白項目,選中依賴略,也可以完全根據本人代碼操作文件依賴項展示 springboot整合tkMapper 想著每次搭建新項目時框架都要從新搭建,基本常用的也就哪幾種,現在就來搭建一種常用的springboot后臺框架,以后新開小項目可以直接拿來...
摘要:如要運行多次,請把上次生成的映射文件代碼刪除再運行。層啟動類掃描接口,必須加上提一嘴,這個注解非常的關鍵,這個對應了項目中所對應的包路徑,必須加上,否則會導致異常。另外,關注之后在發送可領取免費學習資料。 微信公眾號:一個優秀的廢人如有問題或建議,請后臺留言,我會盡力解決你的問題。 前言 如題,今天介紹 SpringBoot 與 Mybatis 的整合以及 Mybatis 的使用,之前...
摘要:優化當我們在數據庫中增加字段時,需要在對應的實體類中增加字段,中也需要去增加字段,去維護,會消耗大量的時間我們可以讓接口去繼承,刪除接口中的所有方法,因為中都已經實現了。遇到這里問題不會報錯,只要注意打印出來的語句即可。 SpringBoot集成Mybatis 自動生成實體類和Mapper 1.使用IDEA創建一個空的SpringBoot項目 2.在pom.xml中引入以下配置 ...
摘要:引入了新的環境和概要信息,是一種更揭秘與實戰六消息隊列篇掘金本文,講解如何集成,實現消息隊列。博客地址揭秘與實戰二數據緩存篇掘金本文,講解如何集成,實現緩存。 Spring Boot 揭秘與實戰(九) 應用監控篇 - HTTP 健康監控 - 掘金Health 信息是從 ApplicationContext 中所有的 HealthIndicator 的 Bean 中收集的, Spring...
閱讀 2141·2023-04-26 03:06
閱讀 3589·2023-04-26 01:51
閱讀 2090·2021-11-24 09:38
閱讀 2463·2021-11-17 17:00
閱讀 2332·2021-09-28 09:36
閱讀 946·2021-09-24 09:47
閱讀 2590·2019-08-30 15:54
閱讀 1559·2019-08-30 15:44