当前位置: 首页>>代码示例>>Java>>正文


Java Copier类代码示例

本文整理汇总了Java中com.github.trang.copiers.inter.Copier的典型用法代码示例。如果您正苦于以下问题:Java Copier类的具体用法?Java Copier怎么用?Java Copier使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


Copier类属于com.github.trang.copiers.inter包,在下文中一共展示了Copier类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: toList

import com.github.trang.copiers.inter.Copier; //导入依赖的package包/类
/**
 * 将 CSV 文件写入到数据库
 *
 * @param file        读取的文件
 * @param sourceClass 文件读取时对应的Bean
 * @param targetClass 写入数据库时对应的Bean
 * @return beanList
 */
@SneakyThrows(IOException.class)
public static <F, T> List<T> toList(Path file, Class<F> sourceClass, Class<T> targetClass) {
    try (InputStream is = Files.newInputStream(file, READ)) {
        //CSV转换List处理器
        BeanListProcessor<F> beanProcessor = new BeanListProcessor<>(sourceClass);
        //CSV转换设置
        CsvParserSettings settings = Csv.parseExcel();
        //设置处理器
        settings.setProcessor(beanProcessor);
        //设置文件标题
        settings.setHeaderExtractionEnabled(true);
        CsvParser parser = new CsvParser(settings);
        //读取CSV文件,Excel默认使用ANSI保存,Windows下为GBK
        //http://blog.sina.com.cn/s/blog_888269b20100wvos.html
        try (InputStreamReader reader = new InputStreamReader(is)) {
            //开始转换
            parser.parse(reader);
        }
        Copier<F, T> copier = Copiers.create(sourceClass, targetClass);
        return beanProcessor.getBeans().parallelStream().map(copier::copy).collect(Collectors.toList());
    }
}
 
开发者ID:drtrang,项目名称:maven-archetype-springboot,代码行数:31,代码来源:CsvUtils.java

示例2: toFile

import com.github.trang.copiers.inter.Copier; //导入依赖的package包/类
/**
 * 将数据库的数据导出为CSV
 *
 * @param file        导出的文件
 * @param sourceClass 读取数据库数据时对应的Bean
 * @param targetClass 写入文件时对应的Bean
 * @param sourceList  数据库查到的数据
 */
@SneakyThrows(IOException.class)
public static <F, T> void toFile(Path file, Class<F> sourceClass, Class<T> targetClass, List<F> sourceList) {
    if (Files.notExists(file)) {
        Files.createFile(file);
    }
    Copier<F, T> copier = Copiers.create(sourceClass, targetClass);
    List<T> data = sourceList.parallelStream().map(copier::copy).collect(Collectors.toList());
    //List转换CSV处理器
    BeanWriterProcessor<T> writerProcessor = new BeanWriterProcessor<>(targetClass);
    writerProcessor.setStrictHeaderValidationEnabled(true);
    //CSV写入设置
    CsvWriterSettings settings = Csv.writeExcel();
    //设置处理器
    settings.setRowWriterProcessor(writerProcessor);
    try (OutputStream os = Files.newOutputStream(file, CREATE, TRUNCATE_EXISTING, WRITE);
         OutputStreamWriter osw = new OutputStreamWriter(os)) {
        CsvWriter writer = new CsvWriter(osw, settings);
        writer.processRecordsAndClose(data);
    }
}
 
开发者ID:drtrang,项目名称:maven-archetype-springboot,代码行数:29,代码来源:CsvUtils.java

示例3: register

import com.github.trang.copiers.inter.Copier; //导入依赖的package包/类
/**
 * 构建执行拷贝的 Copier
 *
 * @return copier
 */
public Copier<F, T> register() {
    return new MapperCopier<>(builder);
}
 
开发者ID:drtrang,项目名称:Copiers,代码行数:9,代码来源:MapperCopierSupport.java

示例4: create

import com.github.trang.copiers.inter.Copier; //导入依赖的package包/类
/**
 * 基于 EasyMapper 实现的基础拷贝,满足基本需求
 *
 * @param sourceClass 源类型
 * @param targetClass 目标类型
 * @return copier
 */
public static <F, T> Copier<F, T> create(Class<F> sourceClass, Class<T> targetClass) {
    return new MapperCopier<>(sourceClass, targetClass);
}
 
开发者ID:drtrang,项目名称:Copiers,代码行数:11,代码来源:Copiers.java

示例5: createCglib

import com.github.trang.copiers.inter.Copier; //导入依赖的package包/类
/**
 * 基于 Cglib 实现的拷贝,不能自定义,拷贝跟原对象一模一样的对象
 *
 * @param sourceClass 源类型
 * @param targetClass 目标类型
 * @return copier
 */
public static <F, T> Copier<F, T> createCglib(Class<F> sourceClass, Class<T> targetClass) {
    return new CglibCopier<>(sourceClass, targetClass);
}
 
开发者ID:drtrang,项目名称:Copiers,代码行数:11,代码来源:Copiers.java


注:本文中的com.github.trang.copiers.inter.Copier类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。