精华内容
下载资源
问答
  • MyBatis Generator生成代码小工具,Mybatis的代码生成器,生成带swagger注解的实体,集成了通用Mapper 简单介绍下项目结构: BaseEntity:生成的实体类可继承父类,此BaseEntity中可写入公共字段,如:id(主键),...

    MyBatis Generator生成代码小工具,Mybatis的代码生成器,生成带swagger注解的实体,集成了通用Mapper

    简单介绍下项目结构:

    BaseEntity:生成的实体类可继承父类,此BaseEntity中可写入公共字段,如:id(主键),updateBy(修改人)updateTime(修改时间),该类应与实际项目中用的BaseEntity保持数据一致。

    MyMapper:自定义Mapper接口,可自定义公共SQL处理方法,该接口也可继承公共SQL处理类,由于我的项目中集成了通用mapper,所以此处与项目中保持一致。

    application.properties:生成实体配置信息的文件,源码中有注释。

    mybatis-generator.xml:官方要求应有的配置文件,此文件中需要设置的信息已提取到application.properties文件中统一配置。

    my-generator-1.0.0.jar:如若BaseEntity、MyMapper有修改,需要重新打包,使自动生成的文件信息准确。

    plugins:该包下涉及到自定义生成的内容

            项目比较简单,随使随用,简单配置后即可使用,可根据项目路径生成文件,也可根绝绝对路径生成文件,可根绝数据库表生成对应三种类型文件,如下:

    生成Model类(如:xxx.java)
    生成Dao类(如:xxxMapper.java)
    生成映射文件(如:xxxMapper.xml)

    先介绍到这里,有问题欢迎留言。

    源码下载地址:

    https://github.com/IsITMan/my-generator.git

    欢迎star、欢迎评论。

    参考文章:

    http://mbg.cndocs.ml/

    https://blog.csdn.net/isea533/article/details/42102297

     

    展开全文
  • SQL转Java代码小工具

    千次阅读 2013-06-08 20:35:58
    当使用Hibernate的时候,经常遇到多行的SQL,通常在PL/SQL或其他地方写好SQL,测试没问题后,需要将SQL写到程序代码中,多行SQL需要拼接字符串,手动一行行添加很不方便,所以,既然经常会遇到,就写个小工具来自动...

    工作中使用SQL的时候很多,当使用Hibernate的时候,经常遇到多行的SQL,通常在PL/SQL或其他地方写好SQL,测试没问题后,需要将SQL写到程序代码中,多行SQL需要拼接字符串,手动一行行添加很不方便,所以,既然经常会遇到,就写个小工具来自动处理吧。


    该工具使用JAVA进行开发,我上传的程序已经打包成exe了(运行仍然需要系统有jre),源代码会在这里全部贴出,因为只有一个类。




    先看两个实际运行图:


    1.生成String类型,这个类型在大部分的编程语言中通用。



    2.StringBuffer类型,这种类型适用于JAVA,从性能来看,这两种类型在执行多次时,StringBuffer效率更高。




    代码很简单,就是两个textarea,通过\n分割字符串,然后一行行拼接。


    代码如下:


    @SuppressWarnings("serial")
    public class CreateSqlWin extends JFrame {
    
    	private JPanel contentPane;
    	private JTextField txtStr;
    	private JRadioButton rdbtnString;
    	private JRadioButton rdbtnStringbuffer;
    	private JSplitPane splitPane;
    	private JTextArea newSql;
    	private JTextArea oldSql;
    	
    	private ImageIcon ico = new ImageIcon(this.getClass().getResource("sql.png"));
    
    	/**
    	 * Launch the application.
    	 */
    	public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					CreateSqlWin frame = new CreateSqlWin();
    					frame.setVisible(true);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    	}
    
    	/**
    	 * Create the frame.
    	 */
    	public CreateSqlWin() {
    		setIconImage(ico.getImage());
    		setMinimumSize(new Dimension(840, 600));
    		setTitle("SQL转JAVA字符串");
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setBounds(100, 100, 842, 605);
    		contentPane = new JPanel();
    		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    		setContentPane(contentPane);
    		contentPane.setLayout(new BorderLayout(0, 0));
    		
    		JPanel panel = new JPanel();
    		panel.setPreferredSize(new Dimension(10, 80));
    		contentPane.add(panel, BorderLayout.NORTH);
    		panel.setLayout(new BorderLayout(0, 0));
    		
    		JPanel panel_1 = new JPanel();
    		panel_1.setBorder(new LineBorder(new Color(0, 0, 0)));
    		panel_1.setPreferredSize(new Dimension(300, 10));
    		panel.add(panel_1, BorderLayout.CENTER);
    		panel_1.setLayout(null);
    		
    		JLabel label = new JLabel("选择生成方式:");
    		label.setBounds(10, 10, 153, 20);
    		panel_1.add(label);
    		
    		rdbtnString = new JRadioButton("String");
    		rdbtnString.setSelected(true);
    		rdbtnString.setBounds(52, 36, 79, 23);
    		panel_1.add(rdbtnString);
    		
    		rdbtnStringbuffer = new JRadioButton("StringBuffer");
    		rdbtnStringbuffer.setBounds(144, 36, 107, 23);
    		panel_1.add(rdbtnStringbuffer);
    		
    		ButtonGroup bGroup = new ButtonGroup();
    		bGroup.add(rdbtnString);
    		bGroup.add(rdbtnStringbuffer);
    		
    		txtStr = new JTextField();
    		txtStr.setText("str");
    		txtStr.setBounds(313, 31, 180, 33);
    		panel_1.add(txtStr);
    		txtStr.setColumns(10);
    		
    		JLabel label_1 = new JLabel("输入变量名:");
    		label_1.setBounds(276, 13, 87, 15);
    		panel_1.add(label_1);
    		
    		JPanel panel_3 = new JPanel();
    		panel_3.setBorder(new MatteBorder(1, 0, 1, 1, (Color) new Color(0, 0, 0)));
    		panel_3.setPreferredSize(new Dimension(200, 10));
    		panel.add(panel_3, BorderLayout.EAST);
    		panel_3.setLayout(new BorderLayout(0, 0));
    		
    		JButton button = new JButton("生成");
    		button.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				//生成SQL
    				String oldSqlStr = oldSql.getText();
    				if(oldSqlStr.equals("")){
    					JOptionPane.showMessageDialog(CreateSqlWin.this, "请在左侧输入SQL再执行!");
    					return;
    				}
    				//清空
    				if(!newSql.getText().equals("")){
    					newSql.setText("");
    				}
    				String valibleName = txtStr.getText();
    				if(valibleName.trim().equals("")){
    					JOptionPane.showMessageDialog(CreateSqlWin.this, "请输入变量名!");
    					return;
    				}
    				String[] sqls = oldSqlStr.split("\n");
    				StringBuffer result = new StringBuffer();
    				//对SQL进行拼接
    				if(rdbtnString.isSelected()){
    					//string形式
    					for(int i=0;i<sqls.length-1;i++){
    						if(result.toString().equals("")){
    							result.append(valibleName+" = \" "+sqls[i]+" \"\n");
    						}
    						else {
    							result.append(" +\" "+sqls[i]+" \"\n");
    						}
    					}
    					result.append(" +\" "+sqls[sqls.length-1]+" \";\n");
    				}
    				else{
    					//string形式
    					for(int i=0;i<sqls.length;i++){
    						result.append(valibleName+".append(\" "+sqls[i]+" \");\n");
    					}
    				}
    				newSql.setText(result.toString());
    			}
    		});
    		button.setFont(new Font("楷体", Font.PLAIN, 32));
    		panel_3.add(button, BorderLayout.CENTER);
    		
    		JPanel panel_2 = new JPanel();
    		panel_2.setBorder(new MatteBorder(0, 1, 1, 1, (Color) new Color(0, 0, 0)));
    		contentPane.add(panel_2, BorderLayout.CENTER);
    		panel_2.setLayout(new BorderLayout(0, 0));
    		
    		splitPane = new JSplitPane();
    		splitPane.addComponentListener(new ComponentAdapter() {
    			@Override
    			public void componentResized(ComponentEvent e) {
    				divider();
    			}
    		});
    		panel_2.add(splitPane, BorderLayout.CENTER);
    		
    		JScrollPane scrollPane = new JScrollPane();
    		splitPane.setLeftComponent(scrollPane);
    		
    		oldSql = new JTextArea();
    		scrollPane.setViewportView(oldSql);
    		
    		JScrollPane scrollPane_1 = new JScrollPane();
    		splitPane.setRightComponent(scrollPane_1);
    		
    		newSql = new JTextArea();
    		scrollPane_1.setViewportView(newSql);
    		
    		JPanel panel_4 = new JPanel();
    		FlowLayout flowLayout = (FlowLayout) panel_4.getLayout();
    		flowLayout.setAlignment(FlowLayout.LEFT);
    		panel_4.setPreferredSize(new Dimension(10, 30));
    		panel_2.add(panel_4, BorderLayout.NORTH);
    		
    		JLabel lblsql = new JLabel("请在左侧输入你要格式化的SQL语句:");
    		lblsql.setHorizontalAlignment(SwingConstants.LEFT);
    		panel_4.add(lblsql);
    	}
    	
    	public void divider(){
    		splitPane.setDividerLocation(0.4);
    	}
    }


    代码中用到了一张图片,仅仅是用来显示图标的,可以使用任意图片代替或者去掉相应代码。




    程序下载:

                                          在发布该帖之前上传了一次,结果发现不是免费下载,需要1金币才可以,果断删除重新上传,结果就一直没反应了。

    临时放个GOOGLE DRIVE的地址:https://docs.google.com/file/d/0ByAG1xopZV6kU3VfOGxQQU1LZjQ/edit?usp=sharing

    CSDN地址彻底没希望了,不知道是不是有什么算法...刚上传的和已删除的一样难道就不行?

    增加一个百度网盘地址:http://pan.baidu.com/share/link?shareid=181300461&uk=1325762948


    展开全文
  • [小工具]代码统计小工具编写

    千次阅读 2017-11-01 18:54:53
    代码小工具是有一定工作经验并且有更高追求的程序的必备技能,今天加班到早晨五六点,到家都七点了,回到家倒头就睡,下午来公司感觉头还有点晕乎,工作的话怕只会产生更多的代码,就想起来写个工程代码统计工具。...

    代码小工具是有一定工作经验并且有更高追求的程序的必备技能,今天加班到早晨五六点,到家都七点了,回到家倒头就睡,下午来公司感觉头还有点晕乎,工作的话怕只会产生更多的代码,就想起来写个工程代码统计工具。

    效果图

    这里写图片描述

    上图是平时积累的小工具,积累我认识也是程序员必备的素养!

    主要代码

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Text;
    
    namespace CSProjectCodeLine
    {
        class Program
        {
            static int Main(string[] args)
            {
                int result = 0;
                try
                {
                    Console.WriteLine("===============Aladdin Tool================");
                    Console.WriteLine("参数:打表配置文件名或打表配置文件所在的目录");
                    Console.WriteLine("===========================================");
                    if (args.Length == 0)
                    {
                        Console.WriteLine("Error:请填写路径参数");
                        Console.ReadKey();
                        result = 1;
                    }
                    else if (args.Length == 1)
                    {
                        DirectoryInfo dirInfo = new DirectoryInfo(args[0]);
                        if (dirInfo == null)
                        {
                            Console.WriteLine("Error:路径有误");
                            Console.ReadKey();
                            result = 1;
                        }
                        else
                        {
                            CodeCounter counter = new CodeCounter();
                            counter.GetProjectResult(dirInfo.FullName);
                            int codenumber = counter.CodeLines;
                            int filenumber = counter.FileNumber;
                            Console.WriteLine("项目中共有cs代码文件" + filenumber + "个");
                            Console.WriteLine("项目中共有代码" + codenumber + "行");
                            Console.ReadKey();
                            result = 0;
                        }
                    }
                    else
                    {
                        Console.WriteLine("Error:参数只支持一个工程路径");
                        Console.ReadKey();
                        result = 1;
                    }
                }
                catch (Exception ex)
                {
                    Console.ForegroundColor = ((Console.ForegroundColor == ConsoleColor.Red) ? ConsoleColor.Green : ConsoleColor.Red);
                    Console.WriteLine(ex.ToString());
                    Console.ResetColor();
                    result = 1;
                }
                return result;
            }
        }
    }
    
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Text;
    
    namespace CSProjectCodeLine
    {
        class CodeCounter
        {
            private int codeLines;
    
            /// <summary>
            /// 代码行数
            /// </summary>
            public int CodeLines
            {
                get
                {
                    return codeLines;
                }
    
                set
                {
                    codeLines = value;
                }
            }
    
            private int commentLines;
    
            /// <summary>
            /// 注释行数
            /// </summary>
            public int CommentLines
            {
                get
                {
                    return commentLines;
                }
    
                set
                {
                    commentLines = value;
                }
            }
    
            private int fileNumber;
    
            /// <summary>
            /// 文件个数
            /// </summary>
            public int FileNumber
            {
                get
                {
                    return fileNumber;
                }
    
                set
                {
                    fileNumber = value;
                }
            }
    
            public CodeCounter()
            {
                codeLines = 0;
                commentLines = 0;
                fileNumber = 0;
            }
    
            /// <summary>
            /// 获取整个项目的代码统计情况
            /// </summary>
            /// <param name="folderPath"></param>
            public void GetProjectResult(string folderPath)
            {
                DirectoryInfo folder = new DirectoryInfo(folderPath);
                try
                {
                    var folders = folder.GetDirectories();
                    for (int i = 0; i < folders.Length; i++)
                    {
                        //递归调用 有时候会碰到目录权限问题
                        GetProjectResult(folders[i].FullName);
                    }
    
                    var csFiles = folder.GetFiles("*.cs");
                    for (int i = 0; i < csFiles.Length; i++)
                    {
                        fileNumber++;
                        string fieleName = folderPath + "\\" + csFiles[i].Name;
                        GetCodeFileResult(fieleName);
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
            }
    
            /// <summary>
            /// 单个文件代码统计情况
            /// </summary>
            /// <param name="fileName"></param>
            public void GetCodeFileResult(string fileName)
            {
                string line;
                StreamReader sr = new StreamReader(fileName);
                while ((line = sr.ReadLine()) != null)
                {
                    codeLines++;
                }
            }
        }
    }
    

    批处理

    @echo off
    Set BatDir=%~dp0
    set/p path=请输入你的工程路径:
    
    Set ToolPath=%BatDir%..\CodeCounter\CSProjectCodeLine.exe
    call %ToolPath% %path%
    echo.=====检查完毕====

    使用方法看上面效果图

    工程下载

    https://gitee.com/dingxiaowei/CodeCounter

    展开全文
  • 代码行数统计小工具

    千次下载 热门讨论 2018-06-08 17:06:32
    一、简洁好用的代码行数统计小工具 二、使用方法请看https://blog.csdn.net/qq_33679504/article/details/80625665
  • 开源代码阅读小工具

    2020-03-08 08:33:31
    开源代码阅读小工具 今天分享两款还不错的开源代码阅读工具:Octotree和GitCodeTree 首先你要有谷歌浏览器,在扩展程序--打开 Chrome 网上应用店--下载即可使用 1、Octotree github查看项目时,不用挨个点开查看...

    开源代码阅读小工具

    今天分享两款还不错的开源代码阅读工具:Octotree和GitCodeTree

    首先你要有谷歌浏览器(包括但不限于),在扩展程序--打开 Chrome 网上应用店--下载即可使用

    1、Octotree

    github查看项目时,不用挨个点开查看,可以达到与idea中阅读代码一样的效果

    2、GitCodeTree

    gitee查看项目时,不用挨个点开查看,可以达到与idea中阅读代码一样的效果

    以上两款插件适用于浏览器 (Chrome, Firefox, Opera and Safari)

    不能ology上网也没关系,这个网站可以下载:https://www.extfans.com/

    两款工具截图如下,别下错了

    展开全文
  • 手动添加太费时费力,在网上并没有找到合适的比较好的工具,就自己动手写了一个垃圾代码添加工具,命名为ChaosTool。 ChaosTool特点 - 自动定义变量/函数/属性 - 自动实现函数体 - 自动识别插入位置 - ...
  • 手动添加太费时费力,在网上并没有找到合适的比较好的工具,就自己动手写了一个垃圾代码添加工具,命名为ChaosTool。 【 官网下载 】 ChaosTool特点 自动定义变量/函数/属性 自动实现函数体 自动识别插入位置...
  • ios代码混淆小工具

    千次阅读 2018-11-12 17:55:26
     写在前面的话:之前做了五年ios开发,现在转了开发方向(数据科学/大数据),今天帮以前ios开发小组的同学,写了一个ios代码混淆小工具,下面介绍下。  这种方式不是最佳方案,更好的方案是confuse.h里写入一段...
  • html代码测试小工具

    千次阅读 2013-09-11 13:13:40
    JS、HTML代码运行工具 function copyCode(obj) { if(obj.value==""){ alert("请输入要复制的代码内容"); return false;} var rng = document.body.createTextRange(); rng.moveToElementT
  • python小工具——下载更新代码工具

    千次阅读 2017-05-03 14:15:24
    在用到大型代码库, 而且它是用repo git 等工具来维护的代码库的时候, 我们下载同步代码,一般使用 repo sync -c . 这种方式来同步整个代码, 但当我们下载或者同步某个单独的分支的时候,往往不是这样的 我们需要...
  • 在检查项目的代码时,就想想有没有可以统计代码行数的小工具类。就上度娘查,专业的感觉比较麻烦,代码写的还是找到了。 Java统计代码小工具 看了他的代码,并且考下来跑了一下,挺好的,能用。 但是只能统计...
  • 代码格式转换小工具

    千次阅读 2019-01-09 14:55:41
    工具包含两个模块,将尖括号转换为转义符格式以及将双引号转换为单引号格式。 主要逻辑代码: 尖括号转换为转义符 function html2Escape(sHtml){ return sHtml.replace(/[&lt;&gt;&amp;]/g,...
  • 前往 [ 官网下载] CodeMixer介绍 ChaosTool升级版,完全重构,更多新功能,再也不是乱码,有以下特点 功能 ChaosTool ...自动备份原始代码 不支持 支持 离线授权认证 不支持...
  • jquery文档modal_jQuery代码文档小工具

    千次阅读 2020-06-30 17:54:44
    jQuery代码文档小工具 我对jQuery的了解还不及MooTools,所以我相当依赖jQuery文档 。 当我查看其中包含jQuery代码的文章时,我会定期看到以前从未见过的功能,并希望了解更多信息。 烦人的是弹出一个新标签页并...
  • 注:数据库设计非常重要,特别是数据类型的定义,表与表之间的关系,如果前期这些没整太好,在后期写java代码的时候会有些麻烦,比如,修改数据类型,删除表,添加表中字段等等。不过还好有Navicat这种神器,让...
  • 代码量统计小工具V1.0

    2011-04-18 13:02:00
    代码量 统计小工具 JavaSE
  • 统计代码行数的python小工具

    千次阅读 2018-02-19 12:18:08
    一个用python实现的统计代码行数的小工具 先立个flag, 新年新目标,希望2018年代码行数可以写到五万行。 实现功能 计算出某一目录以及子目录下代码文件的行数 在计算代码的过程中,只对标准命名的文件进行...
  • C# 加密小工具代码实现

    千次阅读 2014-01-09 16:27:43
    关键点有以下几个: ...b、在工具箱中找到openFileDialog,拖到“选择文件”按钮上,此时会出现如下这种效果: 此时openFileDialog会显示在界面的下方,而不是界面上,这样就可以了,通过单击“选择文件
  • 代码管理工具SVN和Git

    万次阅读 2016-08-31 15:05:01
    这篇文章主要是对源代码管理工具进行了一些总结,也算是自己对相关知识的一个梳理。文章主要从为什么使用,基本知识,二者之间的一些常用指令的对比以及冲突的解决进行梳理。文章只是自己的一些理解,可能会有一些...
  • 这个工具实现了统计一个工程里面代码行数的功能,本来网上也有很多这种工具,都是很多觉得不大好用,反正自己开发一个不是很难,所以我就写了一个,也当作一种编程实践。 这个工具支持的功能有: 可以配置过滤文件...
  • 网上一直没有找到生成代码段的工具,而代码段对于编程人员来说又是可以事半功倍的东东,所以自己简单编写了一个窗体。有需要的话就下载吧。(有源码)本文出自 “学习是一种信仰” 博客,请务必保留此出处...
  • 微信程序教程资料和开发工具大全,文档、代码、例子、工具 微信程序开发者文档官网地址 https://mp.weixin.qq.com/debug/wxadoc/dev/index.html
  • 微信程序上传代码-微信程序前端开发工具 预览 使用开发工具可以预览程序,帮助开发者检查程序在移动客户端上的真实表现。 点击开发者工具顶部操作栏的预览按钮,开发工具会自动打包当前项目,并上传程序...
  • ethtool小工具的源代码网址

    千次阅读 2014-02-26 10:58:01
    这个网址是ethtool小工具的源代码下载地址。https://www.kernel.org/pub/software/network/ethtool/ ethtool如果做linux网络开发的人应该非常熟悉,是个非常强大的网卡配置和检查工具。很长的一段时间对于其 配置...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 39,556
精华内容 15,822
关键字:

代码小工具