努力好好工作的句子 努力工作后成功了的句子
你现在阅读的是一篇关于努力好好工作的句子的文章,里面有丰富多彩的内容,还有给你准备努力工作后成功了的句子和努力好好工作的句子的精彩内容哦。
努力好好工作的句子 努力工作后成功了的句子
大家好,我是金亿谋!
没钱的两个原因
很多人都想变有钱,但大多数人都没能成功,为什么呢?
主要有两个原因:
一个是,你的潜意识里并没有真正想变有钱,你只是说说而已!
另一个是,你不愿意为成为有钱人付出相应的代价!
想富有的三种状态
假设你去问100个人,你问他们想不想变富有,我敢打赌至少会有90个人回答你:想!
但是想富有,分三种状态!
第一种是:我想要变富有!
这句话的意思就是,假如有钞票掉在我头上那我就会要。
第二种是:我决定变富有!
那这个就有点力量了,说明你已经做出了选择。
第三种是:我必须变富有!
这个力量就更强了。
我必须变富有是什么意思?
就是愿意毫无保留的贡献出自己的一切,只为达到富有的目的。
在这个过程中没有任何借口、没有任何如果、没有任何但是、没有任何假如。
所有一切都只为达到一个目的,那就是:变富有!
那你觉得这三种状态当中,哪一种更容易变富?
肯定是第三种!
像狗一样努力工作
这时候可能有人会说了:金老师,我每天像狗一样努力工作,难道这还不算努力变富有吗?
注意:想狗一样努力工作跟毫无保留的贡献一切,这完全是两码事!
什么叫毫无保留贡献一切?
就是把你一切的一切都投入进去,而不是给自己画各种限制。
什么——
我只能付出到这种程度啊,我只能冒险到这种程度啊,我只能牺牲到这种程度啊,这些都是限制!
也就是说,只要你有哪些愿意做哪些不愿意做,那这就是限制!
前几天,有一位粉丝发私信跟我说:金老师,我想赚钱,我很想赚钱!
我就跟他说:你这么想赚钱,那你去做销售吧,做销售赚钱最快。
然后你猜他怎么说?
他说:销售那我干不了,还有没有其它的赚钱方法?
你看——想赚钱,又有这样那样的限制,那怎么可能赚到钱?
然后我就没回他了。
来记下一句话:
如果你不是全力以赴去创造财富,那你肯定就不会拥有什么财富!
如何变成有钱人
我问过很多人,我说:你想变成有钱人吗?
他们都说:想!
我又问——
那你愿意一天工作十六个小时以上吗?
对方不吱声了。
我说:有钱人愿意!
你愿意一周工作七天周末也不休息吗?
有钱人愿意!
你愿意牺牲跟家人朋友聚会的时间全身心投入到事业中来吗?
有钱人愿意!
你愿意在无法保证回报的情况下,投入你全部的时间、精力和资本吗?
有钱人愿意!
所以我想告诉大家的是:想和做,这完全就是两码事!
最后,我来总结一下今天内容的核心:
每个人在全心投入一件事情之前,都会犹豫、都想退缩,那这样基本上都干不出什么结果出来!
如果你想成功、如果你想富有,你就必须要毫无保留的全身心投入,只有这样你才有机会!
好,今天内容就到这里,我们下期再见!
努力工作的句子(成功需要奋斗)
人生活在现实中,每个人都想获得属于自己的成功,成功需要奋斗,成功需要执着和专注。何为专注呢?指专心注意,集中全部精力去完成一件事,精神贯注。做人一生有很多事情需要去做,但一个人的精力和时间总是有限的,人生要想获得成功就必须抓住重要的事情去做,就要集中精力,需要有专注的精神,只有专注才能坚持,只有专注,才能心无旁骛,唯有专注才能专业,最终获得成功。
专注可以让你绽放出人生的光彩,一个人即使是智力平庸,只要能够专注也可以让你绽放智慧的火花,十年磨一剑,水滴石穿,专注可以弥补一个人的某些不足,一个人只要能够做到专注做事,就会将事情做好,做得极致。
做成一件事情需要有专注的精神,专注是一种定力,专注更是一种坚持力。商品经济社会,各种诱惑扑面而来,有人总是喜欢相互攀比,经不住名称的诱惑,缺乏一种专注的精神,做事情往往是这山望着哪山高,不能持之以恒,三天打鱼,两天晒网, 缺乏专注精神,如此便会与成功无缘。
一个人能否获得成功,靠的是智慧、靠的是理想,靠的是奋斗,靠的更是专注精神,专注是人生的定力,专注是人生的毅力,认定的目标就要坚定地走下去,咬住目标不放松,不管有多大的困难,不管前面的路有多艰难,都要咬牙坚持,只有坚持,就能获得最后的胜利。
人生很短暂,一个人来到这个世界上,总要有所作为,就要干成一件事,这就需要专注的精神。有成功学家这样说:“如果你是专注的人,你就能够获得成功。“专注对于人来说,是种高贵的品质,是种人生境界,如同诚实、善良一样重要,忠诚的人才能专注,知行合一,言必行,行必果;善良的人才能专心,一个不厚道的人,总会是喜欢投机取巧,口是心非,做人油头滑脑做事就会马虎应付,如此,难以成功。
大凡成功和优秀的人都有一个共性,就是有高度的责任感,使命感,能够专注做好自己事,在工作中能够表里如一,一丝不苟,对自己所做的事情有责任、有激情。能够专注做事,认真做人,这才是聪明人,智慧的人。
爱默生曾这样说过:一个人当他会身心地投入到自己的工作中,并取得成绩时,他将是快乐而放松的。但是,如果情况相反的话,他的生活则平凡无奇,且有可能不得安宁。做人就是如此,一个人越努力越成功,越努力也就越幸运,成功的人是专注的人,专注的人是诚信的人,更是幸运的人,这就是人生的辩证法。
商品经常社会,给我们每个人都提供了良好的成才平台,一个奋斗者总会找到自己的人生平台,只要你有理想目标,只要你有专注精神,就能收获“成功”二字。成功是一条寂寞之路,做人守不住寂寞,不能专注自己所做事情,如此也就与成功无缘了。
鼓励的句子(60句励志句子合集)
01.想要什么东西,自己挣钱买去。——《富爸爸穷爸爸 》
02.失败会激励胜利者,击垮失败者。——《富爸爸穷爸爸》
03.关注成长,而不是关注成功。——《财富自由之路》
04.抱怨是无能和无奈的选择而已,要么解决要么承受。——《财富自由之路》
05.环境比老师重要,你自己比环境重要。——《财富自由之路》
06.停留于舒适区的学习,叫做“伪勤奋”,只有去完成那些需要你用脑子去思考与解决的困难,才有意义。
07.你的每一次练习,都会积累成你的“本金”。——理财领域里的复利效应
08.以大部分人的努力程度之低,根本没到拼天赋的程度。
09.努力要趁早。
10.这个世界从来没有什么一步登天,所有的成就都是厚积薄发的结果。
11.一个不去寻找机会的人,顶多只能靠运气施舍点东西。——《小狗钱钱》
12.不要总是去想那些做不成的事情,你得多想想什么能做成。——《小狗钱钱》
13.坚持去做对你的未来意义重大的事情。——《小狗钱钱》
14.笨人只有一次好运,而聪明人永远都有好运。——《小狗钱钱》
15.学习和努力是自己的事,想改变,就不要为自己找借口。
16.现在不主动吃学习的苦,将来就得被迫吃生活的苦。
17.如果这个世上真的有奇迹,那只是努力的另一个名字。
18.人生最危险的不是你临时收入低,而是十年过去了,自己毫无进步。——樊登读书
19.当你想成功时,你只有一个理由;当你想放弃的时候,你却有千万个理由。
20. 你不一定要逆风翻盘,但请一定向阳而生,不用谁施舍阳光,我们自己就是太阳。
21.我们终将上岸,阳光万里。
22.已经是最低谷了,怎么走都是向上,所以,你怕什么。
23.生活平淡,用心就会发光;岁月沉闷,跑起来就会有风。
24.因为拼过,奔赴就有了意义。
25.尽早尝试不同的职业,尽早知道自己不喜欢什么事情,这很重要。——《生财日历》
26.不会的东西赶紧去学和练习,一切都来得及。——《生财日历》
27.人生真的不在于起点,而在于持续性。——《生财日历》
28.生活不需要比别人过得好,但至少要比过去的自己好,希望你努力提升自己,迎接更多生活的好运。
29.如果因为错过了太阳而哭泣,那么你也将失去群星了。——泰戈尔
30.梦想摘星的人才可能登上月球。
31.贫穷往往趋于安于贫穷的人,同样,财富则向追求它的人靠近。——《思考致富》
32.没有人会失败,除非他心里已经放弃了。——《思考致富》
32.所有的失败都并非是失败,而是“成功前的练习”,是最宝贵的经验。——《30岁前的每一天》
33.梦想的遥远需要现在的努力去缩短距离。——《30岁前的每一天》
34.成功=选择拿手的事情做到极致。——漫画艺术家蔡志忠
35.成功=技能+运气。——作家李笑来
36.成功=1%的灵感+99%的汗水。——爱迪生
37.成功=坚持最后一分钟。——柏拉图
38.成功=努力+正确方法+少说废话。——爱因斯坦
39.成功=一心一意做好一件事。——卢梭
40.“世界上最遥远的距离,是口与手的距离。”
41.机会不是等出来的,是干出来的,不干就永远没有机会。——《有钱人和你想的不一样》
42.30岁之前选择什么,做些什么,几乎决定着他一生的成败。30岁之前,是一个人一生的基础。——《有钱人和你想的不一样》
43.“孩子,你定要用心学习,马车终会被汽车取代,可我希望你的将来是拥有更多选择权利的人,而不是被迫谋生。”
44.生命中的每一场风雨,都会让你更加强大。
45.每个人都会有一段特别难熬的时光,不必害怕的,日升日落,总有黎明。
46.生活明朗,万物可爱;人间值得,未来可期。
47.人生可没有备用钥匙。——《今日店休》
48.不可能天天都是好日子,有了不顺心的日子,好日子才会闪闪发光。——《今日店休》
49.请一定要读书。————《今日店休》
50.活着就是学习,要读书,要选择。——《今日店休》
51.这个时代不属于80后,90后,也不属于00后,只属于努力后。
52.所谓运气,不过是因为一直在做正确的事,然后在某个时间点爆发而已。
53.如果你不花时间去创造你想要的生活,那么你就会被迫花更多的时间去应付你不想要的生活。
54.毕业后长期的自学能力才是拉开人差距的关键。——粥左罗《时间管理》
55.很多人有赚1000万的野心,却连一周的耐心都没有。——粥左罗《时间管理》
56.生活的每一天都在决定你的未来,你却浑浑噩噩地以为这只是普通的一天。——粥左罗《时间管理》
57.尽可能多地靠近比自己优秀的人去学习,而不是老跟自己同水平的人扯淡,或天天跟不如自己的人吹牛逼秀优越感。——粥左罗《时间管理》
58.选择一个领域,深耕下去,让每一份付出都累积下去,你会越来越值钱。——粥左罗《时间管理》
59.成功之人,必有过人之处。
60.节假日是最好的赶超别人的时期。
*句子素材均来源网络,如有侵权请联系删除。
往期优质文章:
能让你越来越厉害的20条好习惯能让你脱胎换骨的20个自律清单写给所有女生的攒钱小技巧问好的句子(「2023)
早上好,今天是2023年12月14日,星期二,十一月十一,辛丑年 【牛年】 庚子月 丙申日!
告诉自己:今天,是最好的一天,不必为昨日遗憾,带着昨天的烦恼生活,只会让自己负重前行,纠正犯过的错误,积累奔向明天的力量,努力的今天,才是改变的关键,给生活一点改变,完成一个任务,或者改掉一个坏习惯,早安~
每一段路,都是一种领悟,受到打击,就会学到经验,历尽千辛,就会收获幸福,你走的每一步,都算数,上天不会亏待你,人生不会辜负你,会让你的努力,得到相应的回馈,会让你的付出,换来满意的答复!早安!
人生就像钟表,可以回到起点,却已不是昨天!不管从什么时候开始,重要的是开始以后不要停止;不管在什么时候结束,重要的是结束以后不要后悔,抱最大的希望,尽最大的努力,做最坏的打算,从绝望中寻找希望,人生终将辉煌,早安!!
你总是这样,一边焦虑不安的担心未来,一边又大大方方的浪费生命,最怕一生碌碌无为,还安慰自己平凡可贵!
生活可以是甜的,也可以是苦的,但不能是没味的,你可以胜利,也可以失败,但你不能屈服,早安!
你所有那些不为人知的努力,都被旁人称之为:幸运,早安!!所有幸运的宝宝们!
“懒”字怎么写?心旁,中间一个束,最后一个负,意思就是太多的负面情绪、负能量约束你的心,就成了“懒”!越努力越幸运,早安!
每一天,都有一场行走。每一天,都有脚印细数的光阴,这个世界,不是谁,都能体会到心闲气静的美好,偏安于自我的一隅,看似不食人间烟火,却丰富的安静,人生的胜景,不在高处,不在远处,而在心安处。早安!
做人要像做水一样,水无色无形无味。它因器而变,遇圆则圆,逢方则方,直如刻线,曲可盘龙。水因机而动,因动而活,因活而进,故有无限生机。
努力吧...让所有美好的东西都能和你相得益彰,而不是自己偷偷的酸着脖子仰望啊!
永远不要怀疑努力的意义,也不要小看任何一点点的力量,因为我们吃过的苦、受过的累、流过的汗都不会白费,它们会成为一束束光,照亮我们前行的路。日积月累,斗转星移,我们也会慢慢探索出属于自己的道路。早上好!
无论你正在经历什么,都请你不要轻言放弃,因为从来没有一种坚持会被辜负,努力生活,不远处的那道幸运彩虹一定属于你!好友们,早安!
当你的才华还撑不起你的野心的时候,你就应该静下心来学习;当你的能力还驾驭不了你的目标时,就应该沉下心来,历练;梦想,不是浮躁,而是沉淀和积累,只有拼出来的美丽,没有等出来的辉煌。早上好!
努力是一种生活态度,与年龄无关,所以,无论什么时候,千万不可放纵自己,给自己找懒散和拖延的借口,对自己严格一点儿,时间长了,努力便成为一种心理习惯,一种生活方式!
不努力的男人只有两种结果,抽不完的低档烟和干不完的体力活;不努力的女人只有两种结果,穿不完的地摊货和逛不完的菜市场!
愿所有美好,都不负归期,选一种姿态让自己活得无可替代,没有所谓的运气只有绝对的努力,早安!
有的人,一辈子只做两件事,不服,争取!所以越来越好,也有人,一辈子只做两件事,等待,后悔,所以越混越差,新的一天,早安!
世上唯一不能复制的就是时间,唯一不能重演的是人生,该怎么走,过什么样的人生,全凭自己的选择和努力……
你不会的东西,觉得难的东西,一定不要躲,先搞明白,后精湛,你就比别人优秀了,因为大部分人都不舍得花力气去钻研,自动淘汰,所以你执着的努力,就占了大便宜,早安!
世界上最难断的是感情,最难求的是爱情,最难还的人情,最难得的是友情,最难分的亲情,最难找的是真情,最想看的是你微笑的表情!早安!
在清晨中慢慢醒来,
听听鸟语,闻闻花香,让心情更加舒畅。
抛开烦恼苦恼,拥抱快乐芬芳,
每一天都充满阳光,每一秒都能尽情飞扬。
既然活着来到这个世界,就没有打算活着回去。
所以,在这有限的时间里,我们应该珍惜生命,
珍惜机会,更要珍惜那得之不易的时间
因那滴答做响的时间脚步,
一旦走过,再不回头。早上开心快乐!
即使能力有限,也要全力以赴;即使输了,也要比从前更强。勇敢地迎接逆境,即使不能实现最初的梦想,也会打开另一扇梦想的大门。任何时候都不要惧怕前行道路上的任何坎坷,兵来将挡水来土掩,总会有守得云开见日出的时候。
你是一个成年人了, 赚钱是你唯一的出路 即使没有清晨熬好的粥 也没有灯火通明的家 你也应该对自己的人生负责。
脚步向前,境界向上,人生才有希望。你所清楚预见的,真诚追求的,全心争取的,都会在努力中的实现。在你停下来时,不要忘记别人还在后面奔跑!在你想放弃时,不要忘记比你优秀的人一直在面前争分夺秒!周二,早晨好!
成功没有快车道,你以为的捷径,也许正是最远的弯路。每一个轻松的笑容背后,都有一个奋力拼搏的阶段。脚踏实地,一点一滴积累,看似是不走捷径,却能比别人先到达彼岸,收获梦寐以求的成果。早安!
不完美的行动,也胜过犹豫被动的等待和停滞不前的踟蹰。五步、十步都是进步,顿悟、渐悟都是领悟。只要你开始出发,就已经赢了还停留在起点的人。
人生总是奇妙的,一旦你努力去做一件事,如果结果不是你想象的那样,那么老天一定会给你一个更好的结果。
在许多的犹豫中,我们只需要做一件事情,那就是勇敢地上路,不要徘徊。在许多的困难前,我们只需做一个选择,那就是:尝试,尝试,再尝试,不要害怕。只要功夫深,铁杵磨成针!美好的一天从“勇敢尝试”开始!早安!
不求锁定结局,只求曾经努力;不求事事顺意,只求心情美丽;不求左右别人,只求善待自己;不求马到成功,只求坚定不移。早安!
与其指望遇到一个谁,不如指望自己能吸引那样的人;与其指望每次失落的时候会有正能量出现温暖你,不如指望自己变成一个正能量的人;与其担心未来,还不如现在好好努力。早安!
总得熬过无人问津的日子,才能迎来掌声和鲜花。所以,别轻易放弃自己。一个转身,可以是一个结束;一个转身,也可以是一个新的开始 。
人生在世,你只要知道两件事。一,这世上绝对存在不需要读书也很聪明,不需要努力也过得很好的人。二,那个人绝对不是你。然后,你要做的就是乐观并坚持努力,让每一天的自己更出色一点。早安!
机会是留给努力奋斗的人的,有谁的幸运,凭空而来,只有当你足够努力,你才会足够幸运。这世界不会辜负每一份努力和坚持。时光不会怠慢执着而勇敢的每一个人,早安!
喜欢有始有终,井然有序地生活。对于不可控事件,尽早结束,哪怕有利可图。不喜欢耗费心力的拖沓,和时时提防。喜欢明快磊落地前往,适时收手,有备无患,整理好自己,停止对抗。始终觉得,干脆,是良好的个人品质。不拖泥带水,快刀斩乱麻,果决清楚,明晰了当!
只有承担起旅途风雨,才能最终守得住彩虹满天。只要你愿意抬头,阳光就在你眼中!不要害怕压力。记住:正是压力,才把炭变成了钻石。
你若真见过那些强者打拼的样子,就一定会明白,那些人之所以能达到别人到不了的高度,全是因为他们吃过许多别人吃不了的苦。这世上从来就没有横空出世的运气,只有不为人知的努力。早安!
人生最难做到的是:只问耕耘不问收获。人生最难放手的是:财富权势和美色。人生最难得到的是:快乐和幸福。但是不管有多难,我的问候依然陪着你,愿你开心每一天,早安!
世间万物都有自己的季节。我们应该尊重自己的季节,别将他人的标准比量自己,唯有按照自己的季节生长,才可找准人生的节奏。晚一点开花不要紧,你尽管努力生长,总有一天能绽放出最美的花!
该工作的时候好好努力,该玩的时候就好好尽兴,遇到比自己优秀的人学会欣赏,看到落魄潦倒的也不鄙视。——这就是所谓的“拎得清”,做人做事,这样的状态最好。
天再高又怎样,踮起脚尖就更接近阳光,愿时光不负努力!周二,早晨好!不一定要大富大贵,我这五彩斑斓,平淡充实的生活,也是一种幸福啊!
我们常常会抱怨事情很难、目标太远,但对于一个真正有追求的人来说,梦想是理想和现实的结合体,你要敢想,更要敢做。梦想从来不是空口无凭的大话,而是在寂静的奋斗里努力生长的过程。周二,早安!
人生就像小马过河,唯有走过了,你才知道河深浅,你问牛,牛说很容易,你问松鼠,松鼠说被淹死了,现在才发现,生活中的小马太多了!小时候的童话故事,从小就告诉我们要敢于尝试,不要死在别人的嘴里,你的人生,你做主,早安!
要走好明天的路,就要记住昨天走过的路, 思索今天正在走着的路。收获不是一朝一夕的事,需要一如既往地坚持。用饱满的热情做好每一件事,不管脚步有多慢, 只要你在走,总会有进步!
没有什么东西是永恒不变的,人生总是这样,得失无常,再美好的东西,也无法拥有太久。再痛苦的东西也会离你远去。所有的经历,都是一种修炼,等走远了再回首,会发现,这一切会让我们变得坚强和清醒。缘合则聚,缘灭则散,不执于苦,不执于乐,不悲过去,不贪未来,怀平和之心,恬淡的活在每一个当下。星期二,早上开心快乐!
只要找到正确的方向,人生就不会迷茫,不要心怀不满、怨气冲天,也不必耿耿于怀,与其烦躁地抱怨生活命运不公,还不如从容淡定地笑对人生。
今天再大的事,到了明天就是小事;今年再大的事,到了明年就是故事;今生再大的事,到了来世就是传说。人生如行路,一路艰辛,一路风景。你的目光所及,就是你的人生境界。 星期二,早上安康,我的朋友!
每个人都有每个人的生活,各自平淡,各自繁华,你逆光而来配得上这世间所有的好~早安!
做自己的梦,走自己的路。每个人都渴望成功,每个人都渴望改变自己。目前不尽人意的现状,每个人都希望这一生能够做一番事业,但是,生活中有些事情,并不像我们想象的那么简单、那么容易!星期二,早安,朋友!
第一山今日头条官方账号早安心语正能量励志分享图文,每天分享早安心语、早安心语正能量、早安正能量、早安心语励志、正能量语录、早安图片等句子说说,用正能量点亮您幸福美好的一天!
推荐阅读:
①「2023.12.13」早安心语,正能量说说句子,早上好祝福语图片带字
②「2023.12.12」早安心语,正能量图片句子配图,周末双十二早上好
③「2023.12.11」早安心语,正能量温馨语句,冬季超暖心早上好问候
④「2023.12.10」早安心语,寒冬正能量暖心短句,早上好正能量图片
⑤「2023.12.09」早安心语,正能量流行话语新的一天早上好暖心问候
心存希望,幸福就会降临你;
心存梦想,机遇就会笼罩你;
心存坚持,快乐就会常伴你;
心存真诚,平安就会跟随你;
心存善念,阳光就会照耀你;
心存美好,温暖就会围绕你;
心存感恩,贵人就会青睐你;
心存友人,我的问候早早陪伴你,
祝你每天好心情。
人就这么一辈子,
开心也是一天,
不开心也是一天,
所以你一定要让自己开心。
人就这么一辈子,
做错事不可以重来,
碎了的心难再愈合,
所以别让自己后悔。
人就这么一辈子,
过了今天就不会再有另一个今天,
一分一秒都不会再回头,
所以你一定要珍惜每分每秒。
告诉自己要微笑面着对任何挫折。
积极的人像太阳,
走到哪里哪里亮;
消极的人像月亮,
初一十五不一样。
快乐的钥匙一定要放在自己手里,
一个心灵成熟的人不仅能够自得其乐,
而且,还能够将自己的快乐与幸福
感染周围更多的生命。
你不能控制他人,
但你可以掌握自己;
你改变不了事实,
但你可以改变态度。
有时,换个角度,
生活,处处惊喜。
??????.??????
﹊﹊﹊﹊﹊﹊﹊
人生是条河,不论深浅都要过;生活是杯酒,不管苦辣都得喝。你若不伤,岁月无恙;你若温暖,自带光芒;你若向阳,无惧风霜;你若微笑,四季花香。新的周二,新的问候!
??Good Morning……
对比的句子(MySQL表数据对比小工具)
思路分析
- 两张表进行数据对比时,首先需要计算出两张表各自参与数据对比的行数。
- 数据匹配由主键进行关联,采用 Full join
- 对于部分字段如 insert_time 等并不要求一致,所以需要可灵活配置过滤不参与对比字段
- 数据对比需具体到每一个字段的对比,同时输出结果差异可一目了然
- 由于表量多且在对比数据时存在各种差异,因此程序应可灵活配置,主要负责基础配置如:数据库信息、指定对比的表等。而最后将对比逻辑生成为一条 SQL,这样便可实现在对比数据时可根据实际情况灵活改动
Java 具体实现
引入 freemarker 依赖,这里使用 freemarker 来配置生成 SQL 的基础模板
<dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.31</version> </dependency>
FreeMarkerTemplateUtils 工具类
public class FreeMarkerTemplateUtils { private FreeMarkerTemplateUtils(){} private static final Configuration CONFIGURATION = new Configuration(Configuration.VERSION_2_3_31); static{ //指定加载模板所在的路径 CONFIGURATION.setTemplateLoader(new ClassTemplateLoader(FreeMarkerTemplateUtils.class, "/templates")); CONFIGURATION.setDefaultEncoding("UTF-8"); CONFIGURATION.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER); CONFIGURATION.setCacheStorage(NullCacheStorage.INSTANCE); } public static Template getTemplate(String templateName) throws IOException { try { return CONFIGURATION.getTemplate(templateName); } catch (IOException e) { throw e; } } public static void clearCache() { CONFIGURATION.clearTemplateCache(); }}
Table 实体
@AllArgsConstructor @Data public class Table { /** * 表名 */ private String tableName; /** * 过滤字段 */ private List<String> filterFields; /** * 日期 */ private String dateStr; /** * 指定作为过滤条件的时间字段 */ private String filterTimeField;}
MediaSourceDataCompareUtils 核心处理类
public class MediaSourceDataCompareUtils { private static final String DRIVER = "com.mysql.jdbc.Driver"; private static final String USER = "username"; private static final String PASSWORD = "password"; // 数据库连接信息 private static final String URL = "jdbc:mysql://xxxxxxxxxxxxxxxx:3306"; private static Connection conn; private static PreparedStatement ps; private static ResultSet rs; /** * 配置 */ private static final String PROD_SCHEMA = "tdatamedia"; private static final String TEST_SCHEMA = "datamedia_test"; private static final String TEMPLATE_NAME = "CompareSqlTemp.ftl"; private static final String SQL_FILE_DIR = "G://sqls/"; /** * 启动 */ public static void main(String[] args) throws Exception { // 添加任务 List<Table> tables = Lists.newArrayList( new Table("ods_uc_campaign_log", Lists.newArrayList("is_cost"), "2023-07-07", "cost_date_hour") ); for (Table table : tables) { check(table); } } /** * 匹配 */ private static void check(Table table) throws Exception { System.out.println("数据核对任务开始!核对表名:" + table.getTableName()); try { // 创建连接 createConnection(); compare(table); System.out.println("数据核对任务结束!"); } catch (Exception e) { System.out.println("执行异常。异常信息:" + e.getMessage()); } finally { // 关闭连接 rs.close(); ps.close(); conn.close(); } } /** * 生成对比语句 */ private static void compare(Table table) throws Exception { // 获取表字段及主键 List<String> pks = new ArrayList(); List<String> fields = new ArrayList<>(); ps = conn.prepareStatement("describe " + TEST_SCHEMA + "." + table.getTableName()); rs = ps.executeQuery(); while (rs.next()) { if ("PRI".equals(rs.getString(4))) { pks.add(rs.getString(1)); } fields.add(rs.getString(1)); } System.out.println("主键为:" + pks.toString()); System.out.println("列名为:" + fields.toString()); // 过滤掉不关心的字段 fields = filter(fields, table.getFilterFields()); StringBuilder pkStr = new StringBuilder(""); for (String pk : pks) { pkStr.append(pk + ","); } // 配置模板 Map<String, Object> dataMap = new HashMap<>(); dataMap.put("PK_STR", pkStr.substring(0, pkStr.length() - 1)); dataMap.put("FIELDS", fields); dataMap.put("PROD_SCHEMA", PROD_SCHEMA); dataMap.put("TEST_SCHEMA", TEST_SCHEMA); dataMap.put("DATE_STR", table.getDateStr()); dataMap.put("TABLE_NAME", table.getTableName()); dataMap.put("FILTER_TIME_FIELD", table.getFilterTimeField()); String suffix = ".sql"; String path = SQL_FILE_DIR + table.getTableName() + suffix; FileOutputStream fos = new FileOutputStream(new File(path)); Writer out = new BufferedWriter(new OutputStreamWriter(fos, "utf-8"), 10240); Template template = FreeMarkerTemplateUtils.getTemplate(TEMPLATE_NAME); template.process(dataMap, out); System.out.println("生成 SQL 文件路径:" + path); } /** * 创建连接 */ private static void createConnection() throws Exception { Class.forName(DRIVER); conn = DriverManager.getConnection(URL, USER, PASSWORD); } /** * 过滤掉不需要校验的字段 */ public static List<String> filter(List<String> listA, List<String> listB) { HashSet hs1 = new HashSet(listA); HashSet hs2 = new HashSet(listB); hs1.removeAll(hs2); List<String> listC = new ArrayList<>(); listC.addAll(hs1); return listC; }}
CompareSqlTemp.ftl SQL 模板
这里需注意,笔者的数据库采用阿里云的 ADB,因此在语法上与普通 MySQL 数据库有些小差异。
SELECT<#if FIELDS?exists> <#list FIELDS as field> if(test.${field} = prod.${field}, null, ifnull(test.${field}, 'null') || " <=> " || ifnull(prod.${field}, 'null')) "${field}(test <=> prod)"<#if field_has_next>,</#if> </#list></#if>-- SELECT sum(if(test.${FILTER_TIME_FIELD} is null, 0, 1)) test_total, sum(if(prod.${FILTER_TIME_FIELD} is null, 0, 1)) prod_totalfrom (SELECT * FROM ${TEST_SCHEMA}.${TABLE_NAME} where ${FILTER_TIME_FIELD} = '${DATE_STR}') testFULL OUTER JOIN (SELECT * FROM ${PROD_SCHEMA}.${TABLE_NAME} where ${FILTER_TIME_FIELD} = '${DATE_STR}') prod USING (${PK_STR})WHEREtest.${FILTER_TIME_FIELD} is null or prod.${FILTER_TIME_FIELD} is null<#list FIELDS as condition> or test.${condition} != prod.${condition}</#list>limit 1000
对比结果
运行程序后会生成一条 SQL 语句,把 SQL 语句放到数据库运行可得出分析结果(关于生成 SQL 逻辑这里不再赘述)。
差异字段
无差异字段
由于是生成了 SQL 语句,在使用时如果有一些特别的需求如新增过滤条件等可直接修改 SQL 达到灵活变更,从而实现数据对比。
简洁的 Python 版本
import pymysqlfrom mako.template import Templatetext = """ SELECT %for index,field in enumerate(fields): if(test.${field} = prod.${field}, null, ifnull(test.${field}, 'null') || " <=> " || ifnull(prod.${field}, 'null')) "${field}(test <=> prod)" ${',' if index < len(fields)-1 else ''} %endfor -- SELECT sum(if(test.${FILTER_TIME_FIELD} is null, 0, 1)) test_total, sum(if(prod.${FILTER_TIME_FIELD} is null, 0, 1)) prod_total from (SELECT * FROM ${TEST_SCHEMA}.${TABLE_NAME} where ${FILTER_TIME_FIELD} = '${DATE_STR}') test FULL OUTER JOIN (SELECT * FROM ${PROD_SCHEMA}.${TABLE_NAME} where ${FILTER_TIME_FIELD} = '${DATE_STR}') prod USING (${PK_STR}) WHERE test.${FILTER_TIME_FIELD} is null or prod.${FILTER_TIME_FIELD} is null %for index,field in enumerate(fields): or test.${field} != prod.${field} %endfor limit 1000"""mytemplate = Template(text=text)#对比的表名TABLE_NAME = 'ods_tencent_ad_his_log'#不需要对比的字段no_compare_field = ['platform']#时间字段FILTER_TIME_FIELD = 'ad_created_time'#时间DATE_STR = '2023-07-07'TEST_SCHEMA = 'datamedia_test'PROD_SCHEMA = 'datamedia'FIELDS = []PK_STR = ''db = pymysql.connect(host='xxxxxxxxxxxxxxxxx', port=3306, user='username', password='password', charset='utf8')cursor = db.cursor()cursor.execute("describe " + TEST_SCHEMA + "."+TABLE_NAME)data = cursor.fetchall()# 获取主键和列pks = []fields = []for row in data: if "PRI" == row[3]: pks.append(row[0]) fields.append(row[0])PK_STR = ",".join(pks)# 过滤掉不需要对比的字段for field in fields: if field not in no_compare_field: FIELDS.append(field)# print("住键: " + ",".join(pks))# print("列名: " + ",".join(fields))db.close()print( mytemplate.render( fields=FIELDS, TEST_SCHEMA=TEST_SCHEMA, TABLE_NAME=TABLE_NAME, FILTER_TIME_FIELD=FILTER_TIME_FIELD, DATE_STR=DATE_STR, PROD_SCHEMA=PROD_SCHEMA, PK_STR=PK_STR ))print(1)
最后
以上就是笔者进行数据对比的小工具,通过该工具进行简单配置后生成 SQL 并于数据库运行得出对比结果。同时提供了 Java 实现与 Python 实现,希望对各位有所帮助。
以上内容是关于努力好好工作的句子和努力工作后成功了的句子的内容,小编幸苦为你编辑整理,喜欢的请点赞收藏把。