精华内容
下载资源
问答
  • 之前项目里面一直在用dozer,后来遇到性能瓶颈问题,一查看发现dozer复制一个对象居然用了0.2秒 看来是不能用了,dozer 虽然强大,但我用的都只是很简单的功能,就对象的复制转换,于是就自己用反射写了个复制方法,...

    之前项目里面一直在用dozer,后来遇到性能瓶颈问题,一查看发现dozer复制一个对象居然用了0.2秒  看来是不能用了,dozer 虽然强大,但我用的都只是很简单的功能,就对象的复制转换,于是就自己用反射写了个复制方法,结果发现性能提升了好多好多。。

     

    话不多说,上代码,下面是方法的代码:

     

       /**
     * 深度copy。自动转换带下划线的属性根java驼峰格式属性。
     * 例子:见下面注释掉的main方法
     */
    public class SimpleCopyUtil {
    
        public static <T> T copy(Object obj,Class<T> toObj)throws Exception{
            T toObjIns = (T)toObj.newInstance(); //创建目标对象实例
            Class sourCls = obj.getClass();
            //遍历源属性
            do{
                Field[] sourFlds = sourCls.getDeclaredFields(); //源属性集
                for(int i = 0 ; i < sourFlds.length; i++){ //遍历源所有属性
                    Field sf = sourFlds[i];
                    sf.setAccessible(true);
                    //遍历目标所有属性
                    Class toCls = toObj;
                    do{
                        Field[] toFlds = toCls.getDeclaredFields(); //源属性集
                        for(int j = 0 ; j < toFlds.length; j++){ //遍历源所有属性
                            Field tof = toFlds[j];
                            tof.setAccessible(true);
                            if(sf.getName().equals(tof.getName())){
                                String rightType = tof.getType().toString();//得到此属性的类型
                                String leftType = sf.getType().toString();
                                if(StringUtils.equals(rightType,leftType)){
                                    //基本数据类型
                                    if(sf.getType().isPrimitive() || leftType.endsWith("String") || leftType.endsWith("Date")){
                                        tof.set(toObjIns,sf.get(obj));
                                    } else {
                                        //自定义格式,递归实现
                                        Object leftAttribute = sf.get(obj);
                                        Object rightAttribute = copy(leftAttribute,tof.getType());
                                        tof.set(toObjIns,rightAttribute);
                                    }
                                }
                            }
                        }
                        toCls = toCls.getSuperclass();
                    }while(toCls != Object.class);
                }
                sourCls = sourCls.getSuperclass();
            }while(sourCls != Object.class);
            return toObjIns;
        }
    
        public static void main(String[] args) throws Exception{
            @Data
            @AllArgsConstructor
            class CA{
                public CA(){}
                private String nameTable;
                private String addressTable;
            }
    
            @Data
            @AllArgsConstructor
            class C{
                public C(){}
                private String nameTable;
                private String addressTable;
                private CA caTest;
            }
    
            @Data
            @AllArgsConstructor
            class A{
                public A(){}
                private String nameTable;
                private String addressTable;
                private C cTest;
            }
            @Data
            @AllArgsConstructor
            class B{
                public B(){}
                private String nameTable;
                private String addressTable;
                private C cTest;
            }
    
            B b = new B("name","address",new C("c1","c2",new CA("ca1","ca2")));
            A a = copy(b,A.class);
            System.out.println(a);
        }
    
    }
    

     

     

     

     

     

    附录一张我自己测试的结果图:

     

     

     

     

    展开全文
  • MySQL一主两从复制转换为级联复制

    千次阅读 2015-02-01 14:20:03
    最近有个朋友问我MySQL一主两从复制如何改为级联复制? 我之前没有做过这样的改动,所以自己研究了一下, 让B作为A的从库,C作为B的从库,其实也挺简单的,方法如下。 首先从库B要开启二进制日志,而且还要加上...

    最近有个朋友问我MySQL一主两从复制如何改为级联复制?

    我之前没有做过这样的改动,所以自己研究了一下, 让B作为A的从库,C作为B的从库,其实也挺简单的,方法如下。

    首先从库B要开启二进制日志,而且还要加上参数log-slave-updates,并且添加一个复制用的账号。

    从库B和从库C复制主库A的位置大多数情况下是不同的,为了让从库B作为从库C的主库,我们需要让从库B的数据比从库C的数据更接近主库A

    1,先在从库C上执行STOP SLAVE。show slave status \G查看从库C复制主库A的位置Exec_Master_Log_Pos。

    2,在从库B上执行show slave status \G;查看从库B上的Exec_Master_Log_Pos是否已经大于从库C上的Exec_Master_Log_Pos,如果大于,则执行stop slave停掉从库B的复制,这时需要记下从库B上的  Relay_Master_Log_File(B),Exec_Master_Log_Pos(B)两个值,在从库B上执行show master status,记下BINLOG文件名字File(B)以及位置Position(B),然后start slave开启复制。

    3,在从库C上执行start slave  UNTIL MASTER_LOG_FILE =Relay_Master_Log_File(B), MASTER_LOG_POS = Exec_Master_Log_Pos(B),show slave status \G查看从库C上的Until_Log_Pos与Exec_Master_Log_Pos是否相等,如果相等则stop slave关闭复制。然后把从库C的主库指向从库B,

    change master to
    master_host='B_ip',
    master_port=3306,
    master_user='rep',
    master_password='xxxx',
    master_log_file=File(B),
    master_log_pos=Position(B),
    master_connect_retry=3;

    然后start slave开启复制。OK,结束了,就是这样!




    展开全文
  • 1、建立文件名stringBuffer.copy 2、保存内容 StringBuffer query = new StringBuffer(); query.append(" \n"); query.append(" \n");...3、复制到PLSQL Developer\SpecialCopy...4、在PL/SQL中 ,选中SQL右击专用复制

    1、建立文件名stringBuffer.copy

    2、保存内容

    StringBuffer query = new StringBuffer();
    query.append("<line_1> \n");
    query.append("<line_*> \n");
    query.append("<line_n> \n");
    3、复制到PLSQL Developer\SpecialCopy 目录下

    4、在PL/SQL中 ,选中SQL右击专用复制选择stringBuffer  ok了。

    展开全文
  • 用 Java Swing 编写的一个对毫秒和日期进行相互转换的小工具,非常简单易用,而且支持Ctrl+C复制转换后的结果。对于经常进行毫秒和日期转换的人员来说是一个非常不错的选择!
  • 复制来的网页乱码转换清零
  • hive复制表 存储格式转换

    千次阅读 2018-02-06 14:34:34
    在之前的博客中已经介绍过... 本文以ORCFile存储格式为例,详细介绍hive上转换表的存储格式的步骤和需要注意的地方。 1、 查看需要转换的原表信息 show create table 表名; 这边的tmp_mf

    在之前的博客中已经介绍过hive的四种存储格式:http://blog.csdn.net/zyzzxycj/article/details/79267635


    本文以ORCFile存储格式为例,详细介绍hive上转换表的存储格式的步骤和需要注意的地方。


    1、 查看需要转换的原表信息


    show create table 表名;




    这边的tmp_mf是用默认格式TextFile储存的。


    2、复制表信息 并创建表test2:


    CREATE TABLE test2(
      `entity_id` string, 
      `self_entity_id` string, 
      `shop_entity_id` string, 
      `curr_date` string, 
      `card_kind_id` string, 
      `topup_principal` double, 
      `topup_gift` double, 
      `pay_principal` double, 
      `pay_gift` double)
    Row format delimited fields terminated by ’\001‘ stored as orcfile;

    (注意!!'\001'的单引号,需要把代码复制到hive之后,重新删除再补上单引号 不然会报语法错误)

    (注意!!如果有分区 需要在最后一行之前加上一行 分区信息 partitioned by(.....))




    3、将源数据导入新表


    set hive.exec.dynamic.partition=true;
    set hive.exec.dynamic.partition.mode=nonstrict;
    set hive.exec.max.dynamic.partitions.pernode=500;
    insert overwrite table test2
    select * from tmp_mf;

    (注意!!如果有分区 需要在第四行 表名test2之后加上分区信息 partition(.....))






    4、验证结果




    也可以去select 一些数据,进行对比验证。

    展开全文
  • 斜体英文用一般的输入法打出来比较麻烦,可以用专门的斜体英文转换器: 有文斜体英文转换器,不仅支持斜体英文的在线转换,还可以生成多种花样字体,包括英文mini小字体、手写体、花体字、空心体、哥特字体、可爱...
  • 首先进行软件的下载: mathlpix snip 的下载地址 ... CTRL +alt+m 鼠标左键框选,进行复制。 可以直接复制到markdown中 ...复制到word的话还需要进行在线转换: 在线转换网址: https://www.latex4technics.com/ ...
  • 一 文本选择: ...选择好以后命令行模式下使用d删除,y复制,光标移动到另一个地方,在命令行模式用p粘贴到光标下方,P粘贴到光标上方。 二 vim中大小写转化的命令是 gu或者gU 形象一点的解释就是小u意味着
  • 如何结决PDF中的文字无法复制或选中(使用Adobe Acrobat X Pro转换双重PDF) 很多时候我们从网上下载到的PDF无法选中其中的字体,我们又恰好需要这些文字,如果一个一个的自己打出来又比较浪费时间,很多人会想截图的...
  • dd的意思是covert and copy a file,也就是转换复制一个文件,它除了用来备份之外,还可以转换文件。这里介绍几种最常见的用法,包括单个文件的复制、单个文件系统的复制、快速生成一个大文件、大小写转换 NAME ...
  • Hydra是一个实时流传输和数据复制平台,可“解除捆绑”数据流的接收,转换和生产。 它通过相互独立地抽象这些阶段,同时在它们之间提供统一的API来实现。 为什么要复制? Hydra复制协议的目标是将事件的摄取与...
  • 下面包含8 转 32,32转8,8转16,16转8,16转32,32转16等单片机内常用的数据类型转换,直接复制就可使用,感觉好用可以加关注,以后会经常更新一些常规好用的小代码。  1、8 转 32 /************************* 8位转...
  • 行列转换函数   使用该函数可以实现多行合并的效果,例如在工作中,我们做一些财务报表,那需要就满足某个条件的多行记录合并在一起进行显示,则使用该函数。具体使用方法如下:   例如:查询scott用户的emp表...
  • 1。安装vcdimager. sudo apt-get install vcdimager 2. 在终端中执行 vcdxrip -C /dev/cdrom ... vcdxrip 将碟片的.dat文件转换成mpg文件复制在当前目录下。 间接完成复制
  • fw.exists()){ //如果不存在要复制的文件路劲 // fw.mkdirs();//创建文件路劲 // } InputStreamReader rd = new InputStreamReader(new FileInputStream(fr),"GB2312");// 编码转码 Writer wt = new ...
  • MarkDown/Html在线转换能够将md渲染成html并且能保持代码高亮,可以方便的复制待格式的html粘贴到微信公众号,CSDN,简书,博客园,开源中国等。 扫码体验在线助手小程序 我是java代码 public static void main...
  • 把时间戳转换成16进制BCD码:1518335905转换成0x20180211155825或"20180211155825"亲测可直接使用#include &lt;stdio.h&gt; #include &lt;time.h&gt; #include &lt;stdint.h&gt; ...
  • 在结果识别出来以后,你可以点击全部复制,将识别的结果复制发送给微信好友,或者点击发送到电脑上,一键直接发送到你的电脑里。  除了我们日常生活中使用到拍照识别文字,在一些工作中我们也会遇到这样的...
  • 文本格式转换器PDF转换成TXT

    热门讨论 2009-02-27 10:03:24
    可以将不能复制的PDF格式的文本直接转换成Txt进行手机上的电子书阅读
  • Java数据类型的转换:隐式(自动)转换与强制转换

    万次阅读 多人点赞 2015-08-17 10:09:25
    一些初学JAVA的朋友可能会遇到JAVA的数据类型之间转换的苦恼,例如,整数和float,double型之间的转换,整数和String类型之间的转换,以及处理、显示时间方面的问题等。下面笔者就开发中的一些体会介绍给大家。  ...
  • kettle 转换命名参数从将上一转换的参数传递到下一转换中 1.知识点 1)如何将转换中的行记录传递到job(结果)中。...从表输入中获取值,通过组件复制记录到结果将表输出查询到的结果发送到job作业流中。 通过转换
  • javascript 数组以及对象的深拷贝(复制数组或复制对象)的方法前言在js中,数组和对象的复制如果使用=号来进行复制,那只是浅拷贝。如下图演示: 如上,arr的修改,会影响arr2的值,这显然在绝大多数情况下,并...
  • 设置复制环境本章全部适用于classic复制,只有少部分适用于ASP复制。创建数据库保持源...* 若是Classic复制,目标表通过SQL建立复制数据库的连接属性DatabaseCharacterSet : 必须相同,复制不字符集转换 Replica
  • //字符串的复制 char s[ 100 ]= "hello world" ; char s2[ 100 ]= "abcefg" ; strcpy (s,s2); char s[ 100 ]= "hello" ; char s2[ 100 ]= "hello" ; //比较两个字符串内容是否一样 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 654,258
精华内容 261,703
关键字:

复制转换