成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

在springboot中使用Mybatis Generator的兩種方式

Carl / 2837人閱讀

摘要:每個微服務(wù)僅關(guān)注于完成一件任務(wù)并很好地完成該任務(wù)。在一個微服務(wù)的開發(fā)過程中很可能只關(guān)注對單表的操作。本文將說到在的項目中如何去配置形式和配置類形式和使用以及生成代碼的兩種方式形式和注解形式,在中更推薦去使用注解的形式。

介紹

Mybatis Generator(MBG)是Mybatis的一個代碼生成工具。MBG解決了對數(shù)據(jù)庫操作有最大影響的一些CRUD操作,很大程度上提升開發(fā)效率。如果需要聯(lián)合查詢?nèi)匀恍枰謱憇ql。相信很多人都聽說過微服務(wù),各個微服務(wù)之間是松耦合的。每個微服務(wù)僅關(guān)注于完成一件任務(wù)并很好地完成該任務(wù)。在一個微服務(wù)的開發(fā)過程中很可能只關(guān)注對單表的操作。所以MBG在開發(fā)過程中可以快速的生成代碼提升開發(fā)效率。

本文將說到在springboot的項目中如何去配置(XML形式和Java配置類形式)和使用MBG以及MBG生成代碼的兩種方式(XML形式和注解形式),在springboot中更推薦去使用注解的形式。

MBG配置

添加依賴

    
        org.mybatis.generator
        mybatis-generator-core
        1.3.5
    

2.XML配置

配置示例:在新建springboot項目的根目錄下創(chuàng)建mbg.xml文件。

        

    
        
              
            
            
            
            
        
        
         
      
           
        
            
        
        
        
        
          
          
        
    
    
        
          
        
    
       
        
          
          
         
        
            
            
        

配置詳解






 


  

    
    
    
    
    
    
    
    

    
    
    

    
    
        
    

    
    
        
        
    

    
    
        
        

        
        

        
        

        
        

        
        
    

    
    
        
        
    

    
    
        
        
        
    
    
    

        
        

        
        

        
        

        

        

        

        

        
        
        

        
        

        

        

         
               
          

         
             
             

             

             

             

             
         

         
    

生成代碼:

public class TestMGB {
    public static void main(String[] args) throws IOException, XMLParserException, InvalidConfigurationException, SQLException, InterruptedException {
        List warnings =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配置是相對應(yīng)的。直接運(yùn)行該示例即可生成數(shù)據(jù)表對于的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");
         
        //自動識別數(shù)據(jù)庫關(guān)鍵字,默認(rèn)false,如果設(shè)置為true,
        //根據(jù)SqlReservedWords中定義的關(guān)鍵字列表;一般保留默認(rèn)值,遇到數(shù)據(jù)庫關(guān)鍵字(Java關(guān)鍵字),
        //使用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);
        
        //設(shè)置是否去除生成注釋
        CommentGeneratorConfiguration commentGeneratorConfiguration = new CommentGeneratorConfiguration();
        commentGeneratorConfiguration.addProperty("suppressAllComments","true");
        //commentGeneratorConfiguration.addProperty("suppressDate","true");
        context.setCommentGeneratorConfiguration(commentGeneratorConfiguration);
    
        //設(shè)置連接數(shù)據(jù)庫
        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可自動轉(zhuǎn)化以下類型(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 List getUserByName(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);
    }
    
    /**
     * 根據(jù)ID更新用戶信息
     * @param userInfo
     * @return
     */
    public Integer updateUser(UserInfo userInfo) {
        return userInfoMapper.updateByPrimaryKey(userInfo);
    }
    
    /**
     * 根據(jù)ID刪除用戶
     * @param id
     * @return
     */
    public Integer deleteUserById(Integer id) {
        return userInfoMapper.deleteByPrimaryKey(id);
    }

}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/72182.html

相關(guān)文章

  • springboot (一)集成tkmapper

    摘要:整合想著每次搭建新項目時框架都要從新搭建,基本常用的也就哪幾種,現(xiàn)在就來搭建一種常用的后臺框架,以后新開小項目可以直接拿來使用項目整體結(jié)構(gòu)圖新建空白項目,選中依賴略,也可以完全根據(jù)本人代碼操作文件依賴項展示 springboot整合tkMapper 想著每次搭建新項目時框架都要從新搭建,基本常用的也就哪幾種,現(xiàn)在就來搭建一種常用的springboot后臺框架,以后新開小項目可以直接拿來...

    Shihira 評論0 收藏0
  • Java后端

    摘要:,面向切面編程,中最主要的是用于事務(wù)方面的使用。目標(biāo)達(dá)成后還會有去構(gòu)建微服務(wù),希望大家多多支持。原文地址手把手教程優(yōu)雅的應(yīng)用四手把手實現(xiàn)后端搭建第四期 SpringMVC 干貨系列:從零搭建 SpringMVC+mybatis(四):Spring 兩大核心之 AOP 學(xué)習(xí) | 掘金技術(shù)征文 原本地址:SpringMVC 干貨系列:從零搭建 SpringMVC+mybatis(四):Sp...

    joyvw 評論0 收藏0
  • SpringBoot 實戰(zhàn) (十三) | 整合 MyBatis (XML 版)

    摘要:如要運(yùn)行多次,請把上次生成的映射文件代碼刪除再運(yùn)行。層啟動類掃描接口,必須加上提一嘴,這個注解非常的關(guān)鍵,這個對應(yīng)了項目中所對應(yīng)的包路徑,必須加上,否則會導(dǎo)致異常。另外,關(guān)注之后在發(fā)送可領(lǐng)取免費(fèi)學(xué)習(xí)資料。 微信公眾號:一個優(yōu)秀的廢人如有問題或建議,請后臺留言,我會盡力解決你的問題。 前言 如題,今天介紹 SpringBoot 與 Mybatis 的整合以及 Mybatis 的使用,之前...

    _Zhao 評論0 收藏0
  • SpringBoot集成Mybatis 自動生成實體類和Mapper

    摘要:優(yōu)化當(dāng)我們在數(shù)據(jù)庫中增加字段時,需要在對應(yīng)的實體類中增加字段,中也需要去增加字段,去維護(hù),會消耗大量的時間我們可以讓接口去繼承,刪除接口中的所有方法,因為中都已經(jīng)實現(xiàn)了。遇到這里問題不會報錯,只要注意打印出來的語句即可。 SpringBoot集成Mybatis 自動生成實體類和Mapper 1.使用IDEA創(chuàng)建一個空的SpringBoot項目 2.在pom.xml中引入以下配置 ...

    codercao 評論0 收藏0
  • spring boot - 收藏集 - 掘金

    摘要:引入了新的環(huán)境和概要信息,是一種更揭秘與實戰(zhàn)六消息隊列篇掘金本文,講解如何集成,實現(xiàn)消息隊列。博客地址揭秘與實戰(zhàn)二數(shù)據(jù)緩存篇掘金本文,講解如何集成,實現(xiàn)緩存。 Spring Boot 揭秘與實戰(zhàn)(九) 應(yīng)用監(jiān)控篇 - HTTP 健康監(jiān)控 - 掘金Health 信息是從 ApplicationContext 中所有的 HealthIndicator 的 Bean 中收集的, Spring...

    rollback 評論0 收藏0

發(fā)表評論

0條評論

Carl

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<