`
kanpiaoxue
  • 浏览: 1781267 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

通过表名文件创建MyBatis的table部分的xml

 
阅读更多

 

 

import com.google.common.base.CaseFormat;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.stream.Stream;

/**
 * @ClassName: TempXMLTools
 * @author kanpiaoxue
 * @version 1.0
 * @CreateTime: 2019/02/15 17:33:25
 *              通过表名文件创建MyBatis的table部分的xml
 */
public class MyBatisXMLTools {

    /**
     *
     * @param args
     * @author kanpiaoxue
     * @CreateTime: 2019/02/15 17:33:25
     */
    public static void main(String[] args) {
        String schema = "hellodb";
        String sqlFile = "/Users/kanpiaoxue/tmp/20190306/hello.sql";
        /**
         * <pre>
         * hello.sql的内容:
         * hello
         * world
         * </pre>
         */
        try (Stream<String> lines = Files.lines(Paths.get(sqlFile))) {
            lines.map(tb -> {

                String mapperName = createMapperName(tb);
                String domainObjectName = createDomainObjectName(tb);

                StringBuilder builder = new StringBuilder();
                builder.append("<table schema=\"").append(schema).append("\" tableName=\"").append(tb)
                        .append("\" mapperName=\"").append(mapperName).append("\"");
                builder.append(" domainObjectName=\"").append(domainObjectName)
                        .append("\" enableCountByExample=\"false\"");
                builder.append(" enableDeleteByExample=\"false\" enableSelectByExample=\"false\"");
                builder.append(" enableUpdateByExample=\"false\">");
                builder.append("<property name=\"useActualColumnNames\" value=\"false\" />");
                builder.append("</table>");
                return builder.toString();
            }).forEach(System.out::println);
                /**
                 * 输出内容:
                 * <table schema="hellodb" tableName="hello" mapperName="HelloDAO" domainObjectName="Hello" enableCountByExample="false" enableDeleteByExample="false" enableSelectByExample="false" enableUpdateByExample="false"><property name="useActualColumnNames" value="false" /></table>
                 * <table schema="hellodb" tableName="world" mapperName="WorldDAO" domainObjectName="World" enableCountByExample="false" enableDeleteByExample="false" enableSelectByExample="false" enableUpdateByExample="false"><property name="useActualColumnNames" value="false" /></table>
                 */
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    static String createMapperName(String tb) {
        return String.format("%sDAO", createDomainObjectName(tb));
    }

    static String createDomainObjectName(String tb) {
        return CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, tb);
    }

}

 

 

分享到:
评论

相关推荐

    Java自动生成数据库表实体类和mybatis接口以及xml文件

    在Java开发过程中,尤其在基于MyBatis框架的项目中,经常需要手动创建与数据库表对应的实体类、Mapper接口和XML配置文件。这样的工作既耗时又容易出错。为了解决这一问题,开发者通常会利用代码生成工具来自动生成...

    mybatis自动生成dao, model, mapper xml文件

    MyBatis Generator基于XML配置文件和Java API,通过解析数据库表结构,能够自动化地生成JavaBean(对应Model层)、Mapper接口(对应DAO层)以及Mapper XML文件。这样,开发者只需要关注业务逻辑,而无需过多地关心...

    mybatis创建po类和xml文件工具项目

    这个"mybatis创建po类和xml文件工具项目"就是为了解决手动编写这些PO类和XML映射文件的繁琐工作。 该项目的核心在于`generatorConfig.xml`文件,这是MyBatis Generator的配置文件,用于定义如何自动生成PO类和对应...

    tk-mybatis-dynamic-tablename:tk.mybatis动态创建表操作

    2. **自动填充表名**:通过@TableId注解,可以在插入或更新时自动将表名作为一部分填入到主键值中。这对于一些使用复合主键,其中包含表名的情况非常有用。 3. **多租户支持**:在多租户系统中,每个租户的数据通常...

    mybatis generator自动生成DAO、Bean、MapperXML等文件

    在使用MBG时,首先需要创建一个配置文件(通常为`generatorConfig.xml`),在其中指定数据库连接信息、表名、生成的Java包路径等。然后,通过运行MBG的Java主类或者批处理脚本,MBG会根据配置文件中的设置自动生成...

    MyBatis动态创建表的实例代码

    通过在Mapper XML文件中定义适当的SQL语句,我们可以轻松地完成诸如动态创建表这样的复杂任务,同时保持代码的清晰和可维护性。在实际项目中,正确理解和使用动态SQL对于提升开发效率和应用性能至关重要。

    mybatis-plus 表名添加前缀的实现方法

    MyBatis-Plus 提供了一个全局配置项 `table-prefix` 来设置表名前缀。在你的项目配置文件(如 YAML 或 XML)中,你可以这样设置: ```yaml mybatis-plus: mapper-locations: classpath:mappers/*Mapper.xml # ...

    mybatis自动生成mapper文件

    MyBatis Generator(MBG)是一款强大的工具,用于自动生成MyBatis的Mapper接口、XML映射文件以及对应的实体类。这款工具极大地提高了开发效率,减少了手动编写这些基础代码的工作量,使得开发者能够更专注于业务逻辑...

    mybatis-generator+generator.xml

    `generatorConfig.xml` 是 MyBatis Generator 的核心配置文件,它包含了所有关于代码生成的配置信息,例如数据库连接信息、要生成的表名、生成的类和接口的命名规则等。配置文件通常包含以下几部分: - **数据库...

    Spring Boot集成Mybatis(XMl文件)

    这些类通常包含getter和setter方法,并且通过`@Table`注解标识表名。 4. **编写Mapper接口**:创建一个Mapper接口,该接口继承自Mybatis的`Mapper`接口或者自定义的通用Mapper。接口中定义需要的方法,方法名和XML...

    mybatis 自动生成实体类,xml配置

    MyBatis Generator 会根据数据库表自动创建这些文件。例如: ```xml &lt;table tableName="your_table_name" domainObjectName="YourClassName" enableCountByExample="false" enableUpdateByExample="false" ...

    mybatis自动生成代码和配置文件

    首先,你需要创建一个`generatorConfig.xml`配置文件,其中包含数据库连接信息、需要生成的表名、生成的目标包路径等。例如: ```xml &lt;!-- 数据库连接信息 --&gt; &lt;context id="MyDbContext" targetRuntime="...

    MyBatis的generator插件(含案例xml)

    MyBatis Generator(MBG)是MyBatis框架的一个强大工具,它允许用户自动生成Java实体类、Mapper接口和XML映射文件,大大减轻了开发人员的手动编码工作,提高了开发效率,减少了出错的可能性。在Java开发中,尤其是...

    mybatis dao xml 代码生成工具

    MyBatis DAO XML 代码生成工具是一款高效实用的开发辅助软件,主要针对MyBatis框架,帮助开发者自动生成DAO(Data Access Object)层和对应的XML映射文件。使用这款工具,开发者无需手动编写大量重复的SQL操作代码,...

    mybatis逆向工程配置文件.zip

    MyBatis逆向工程是开发过程中一个非常实用的工具,它可以帮助我们自动生成基于数据库表的Java实体类、Mapper接口及XML配置文件,极大地提高了开发效率。本压缩包"mybatis逆向工程配置文件.zip"包含了实现这一功能所...

    mybatis的逆向工程(自动生成实体、xml文件、dao)

    Mapper XML文件是MyBatis的核心部分,它包含了SQL查询语句和结果映射。逆向工程会为每个表生成对应的Mapper XML文件,其中包含增删改查等基本操作的SQL语句。XML文件中的`&lt;select&gt;`, `&lt;insert&gt;`, `&lt;update&gt;`和`...

    mybatis generator jar带configure配置文件

    MyBatis Generator是一款强大的自动化代码生成工具,它能够帮助开发者自动生成MyBatis的实体类、Mapper接口以及相应的XML配置文件,极大地提高了开发效率。在本主题中,我们主要讨论如何使用MyBatis Generator,特别...

    maven生成mybatis映射文件

    MyBatis Generator(MBG)是MyBatis官方提供的一个代码生成器,它可以根据数据库表自动创建Mapper接口、Mapper XML文件、实体类等,极大地提高了开发效率。MBG通过配置文件指定数据库连接信息、表名、生成规则等,...

    mybatis创建一个或多个新用户 insert 字段和表名不确定时动态添加问题

    在这个例子中,通过Java代码和XML映射文件的配合,我们成功解决了在插入新用户时字段和表名不确定的问题。这种做法在处理动态数据结构或者需要批量插入数据的场景中非常实用。然而,需要注意的是,这种动态SQL的方式...

    mybatis逆向工程生成指定table的dao、entity、mapper.xml

    通过修改配置文件中的数据库连接信息和表名,用户可以轻松地生成指定table的代码。 6. **最佳实践** - 在团队开发中,逆向工程应谨慎使用,避免频繁修改数据库表结构导致代码冲突。 - 为每个表生成单独的Mapper,...

Global site tag (gtag.js) - Google Analytics