精华内容
下载资源
问答
  • 下划线分开
    2021-01-27 23:25:53

    一直以来遵循着数据库中用下划线分割的命名方式,代码中用小驼峰式命名方式来。

    一直以来都在做CURD工作,VO,DTO什么的写的不觉其烦。

    但是轮到自己挣地盘糊口的项目时,突然陷入能写单引号为什么要写双引号的沉思,更不用说因为这不统一的命名方式,数据在各个应用接口、Elasticsearch与数据库的双向流动中无疑增加了诸多手工工作和长时间的川字眉凝视。

    为什么不能统一用驼峰式命名法呢,常见的说法有:

    1)数据库中表名和字段名采用小写和下划线分开的命名方式可读性好,不容易拼写错;

    这一点还是要承认的,大多数情况下程序员的英语水平基本停在大学四级那里了,许多情况下来个下划线分隔的拼音简写命名字段,还目一然了。

    2)数据库中大小写不敏感;

    这个大小写敏感是可以设置的。

    3)一直以来就是这么做的;

    但是在我眼下的情况,这面临的转换工作就如同塞在牙缝里的那一撮牛筋,路边有树苗的话能手刀了做出牙签,马路上能捡那半截现成的牙签。

    所以我就立即开始动手了。

    说立即并不准确,因为这时已经有47个表了,代码就更加不用讲了,但是我觉得非解决不可,那一小撮牛筋一旦发现你并没有趁手的工具的时候,就变得油腻起来。

    开始动手的时候,我又觉得代码中小驼峰命名法似乎有点不完美,反正是要改,何不干脆用大驼峰命名法呢?一个个ShowMeTheMoney的,多美。

    于是我就开始动手了,一点懒没偷,早9晚6,外加第二天一个上午。(最开始是想改一部分试试,其他的有空再改,但是发现mybatis plus根本不给我这个机会)

    问题肯定遗留不少,但是终究还是把那撮牛筋给扔掉了,可以休整一下,接下来就可以愉快的继续前进了。

    喝了咖啡回来后,我就这么着发现,大驼峰命名法根本就没解决我要解决的问题,在Java的世界里,谁管你什么大驼峰啊,都是小驼峰,就差一个首字母的大小写,但是完全不通。

    所以我又开始动手了,这次好一点,比上次改少了几个小时。

    在此立下祖训:

    忘却数据库的下划线命名方式,使用小驼峰命名法。

    更多相关内容
  • c#读取文件夹下文件的名称,名称按下划线分开,将名称写入Oracle数据库 private void timer1_Tick(object sender, EventArgs e) { listBox1.Items.Clear(); label2.Text = "定时器正在运行..."; Directo...

    c#读取文件夹下文件的名称,名称按下划线分开,将名称写入Oracle数据库

      private void timer1_Tick(object sender, EventArgs e)
            {
                listBox1.Items.Clear();
                label2.Text = "定时器正在运行...";
                DirectoryInfo theFolder = new DirectoryInfo(textBox1.Text);
                FileInfo[] dirInfo = theFolder.GetFiles();
                //遍历文件夹
                foreach (FileInfo NextFolder in dirInfo)
                {
                    //遍历文件
                    listBox1.Items.Add(NextFolder.Name);
                }
    
    
                //读取listBox1里的数据,按下划线分开,导入到数据库
                int i;
                i = listBox1.Items.Count;
                for (int j = 0; j < i; j++)
                {
                    string str = listBox1.Items[j].ToString();
    
                    //string path = @"E:\test\testdata\" + str + "";
                    //string path2 = @"E:\test\backdata\" + str + "";
    
                    //FileStream fileStream = File.OpenRead(path);
                    OracleConnection conn = new OracleConnection("Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=**.**.**.**)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=TEST)));Persist Security Info=True;User ID=TEST;Password=TEST;");
                    //StreamReader reader = new StreamReader(fileStream);
                    conn.Open();
    
                    //向数据库插入数据
    
                    OracleCommand command = conn.CreateCommand();
                    command.CommandText = "insert into TABLE(ID,QRCODE,PRODUCTPN,STATUS,DATETIME) values (:ID,:QRCODE,:PRODUCTPN,:STATUS,:DATETIME)";
    
                    //string line = null;
                    //while ((line = reader.ReadLine()) != null)
                    //{
                    string ictid = Guid.NewGuid().ToString();
                    DateTime datetime = DateTime.Now;
    
                    //string[] str1 = str.Split('_'); 单字符切割
                    string[] str1 = str.Split(new Char[]{'_','.'});  //多字符切割
                    string qrcode = str1[0];
                    string pn = str1[1];
                    string sta = str1[2];
    
    
                    command.Parameters.Clear(); //每次插入都要清除参数
                    command.Parameters.Add(new OracleParameter(":ID", ictid));
                    command.Parameters.Add(new OracleParameter(":QRCODE", qrcode));
                    command.Parameters.Add(new OracleParameter(":PRODUCTPN", pn));
                    command.Parameters.Add(new OracleParameter(":STATUS", sta));
                    command.Parameters.Add(new OracleParameter(":DATETIME", datetime));
    
                    //int tem=command.ExecuteNonQuery();
    
                    if (command.ExecuteNonQuery() > 0)
                    {
                        richTextBox1.Text += "\n1条数据保存成功";
                    }
                    //}
    
    
                    //fileStream.Close();
                    //reader.Close();
                    conn.Close();
                    command.Dispose();
                    //插入数据成功后,删除文件
                    //File.Delete(textBox1.Text);
                    //richTextBox1.Text += "\ntextBox1.Text删除成功";
    
                    if (!Directory.Exists(@"E:\test\backdata"))
                    {
                        Directory.CreateDirectory(@"E:\test\backdata");
                    }
    
                    string path = @"E:\test\testdata\" + str + "";
                    string path2 = @"E:\test\backdata\" + str + "";
                    FileInfo fi1 = new FileInfo(path);
                    FileInfo fi2 = new FileInfo(path2);
    
                    try
                    {
                        // Create the source file.
                        // using (FileStream fs = fi1.Create()) { }
                        //Ensure that the target file does not exist.
                        if (File.Exists(path2))
                        {
                            fi2.Delete();
                        }
                        //Copy the file.f
                        fi1.CopyTo(path2);
                        richTextBox1.Text += String.Format("\n{0} 复制到 {1}.", path, path2);
                        File.Delete(path);
                        richTextBox1.Text += String.Format("\n{0}文件删除成功",path);
                    }
                    catch (IOException ioex)
                    {
                        richTextBox1.Text += String.Format("报错信息:{0}", ioex.Message);
    
                    }
                }
                label2.Text = "定时器停止...";
            }

     

    展开全文
  • 注意:这个写法需要jdk>...多位数字,可以在数字中间田间下划线,以增加可读性 /** * 多位数可以用下划线隔开 */ @Test public void test5(){ int i = 100_000; System.out.println(i+1); } 结果 ...

    注意:这个写法需要jdk>= 1.7

    多位数字,可以在数字中间田间下划线,以增加可读性

     /**
         * 多位数可以用下划线隔开
         */
        @Test
        public void test5(){
            int i = 100_000;
            System.out.println(i+1);
        }

    结果

    展开全文
  • CREATE TABLE test20 (en_name VARCHAR(100));INSERT INTO test20 SELECT '100105516_100105517';INSERT INTO test20 SELECT '100105516_100105518';INSERT INTO test20 SELECT '100105767_100105771';...

    CREATE TABLE test20 (en_name VARCHAR(100));

    INSERT INTO test20 SELECT '100105516_100105517';

    INSERT INTO test20 SELECT '100105516_100105518';

    INSERT INTO test20 SELECT '100105767_100105771';

    INSERT INTO test20 SELECT '100105803_100105804';

    INSERT INTO test20 SELECT '100105846_100105848';

    INSERT INTO test20 SELECT '100105851_100105854';

    INSERT INTO test20 SELECT '100106979_100106980';

    INSERT INTO test20 SELECT '100107076_100107077';

    INSERT INTO test20 SELECT '100118835';

    INSERT INTO test20 SELECT '100117241';

    INSERT INTO test20 SELECT '100117262';

    INSERT INTO test20 SELECT '100107183';

    INSERT INTO test20 SELECT '100107197';

    INSERT INTO test20 SELECT '';

    INSERT INTO test20 SELECT '';

    INSERT INTO test20 SELECT '';

    方法一:

    SELECT en_name,

    IF(LOCATE('_',en_name)=0,CONCAT(SUBSTRING_INDEX(en_name,'_',1)+100000000 ),CONCAT(SUBSTRING_INDEX(en_name,'_',1)+100000000,'_',SUBSTRING_INDEX(en_name,'_',2)+100000000))

    FROM test20;

    方法二:

    SELECT en_name,

    CASE WHEN en_name LIKE "%\_%"

    THEN CONCAT(SUBSTRING_INDEX(en_name,'_',1)+100000000,'_',SUBSTRING_INDEX(en_name,'_',-1)+100000000)

    ELSE CONCAT(SUBSTRING_INDEX(en_name,'_',1)+100000000 )

    END AS en_name

    FROM test20;

    展开全文
  • 数据库存在表BookInfo 配置如下信息即可 application.yml # Druid 连接池 spring: datasource: druid: driver-class-name:...configuration: map-underscore-to-camel-case: false # 设置字段不使用下划线方式 访问测试
  • 偶尔发现在定义一个数字的时候数字之间可以加入下划线 ,数字之间的下划线有用吗 ? 没什么卵用 , 但是 ...可以增加可读性 , 同时也不改变变量数值的大小和变量类型 >>> num = 1_234_567_89 >>> ...
  • 使用matlab自带的split函数:以下划线“_”为间隔将原来字符串拆分为两部分。 >> str = '11_12'; >> list = split(str,'_') list = 2×1 string 数组 "11" "12" ...new_str =
  • 在Excel里可以选择数据》分列》分隔符号》其他,输入需要分割的即可
  • 2. 把数字与字母之间用下划线字符_分开,使得更清晰 3. 把单词中间有多个空格的调整为1个空格。 4. 例如: 用户输入: you and me what cpp2005program 则程序输出: You And Me What Cpp_2005_program 用户输入: ...
  • Java 7 以后,数字文字中数字之间的任意位置都可以出现任何数量的下划线字符(_),通过下划线(_)你可以把数字按组进行分开。从而可以可以提高代码的可读性。 下面的例子介绍如何使用 _ 作为数字之间的分隔符 long ...
  • 问题点:Python里面很多sql字段没有按照驼峰命名的格式反参,导致我迁移到Java项目中测试发现拿sql在数据库中执行是有值的,但是项目里面执行带下划线的字段或别名带下划线的值都为null,换个不带下划线的别名就有值...
  • 满意答案小不点22282014.08.15采纳率:59%等级:12已帮助:3903人外婆家私房菜5261:账户管理#title{margin:0px;width:100%;height:45px;background-color:#d9d9d9;}#text{margin:0px;line-height:40px;...
  • 字符串处理(单词首字母大写,数字与字母用下划线隔开,多个空格合并)
  • 下划线与文字有距离分开

    千次阅读 2019-01-27 22:36:51
    开发工具与关键技术:Adobe Dreamweaver CC 与css...但是这样字写我们这些刚刚学习前段的菜鸟不懂的如何将下划线与文字分开 这个时候我们可以将ext-decoration: underline改成下边框也快实现下划线的效果,这个时候...
  • 下划线分为很多种,如单下划线、双下划线、加粗下划线、下划虚线等等。下划线起着强调文字、引起注意的作用。那电脑下划线怎么打?下划线怎么输入出来呢?“__” 为下划线,可以用键盘上“0”数字后边的按键,英文...
  • 好像有人杀死了原始帖子(OP)中的URL。这是整个讨厌的URL,以防万一某些格式设置功能再次杀死它:...您不能在以下位置放置下划线:在数字的开头或结尾与浮点文字中的小数点相邻在F或L后缀之前在需要一串数...
  • 在双下划线被称为“dunder”,它们调用特殊的方法,这些方法可以对对象产生一些非常巧妙的效果。它们不会改变意义,但它们是非常神奇的伏都教,是你腰带上的好工具。在__init__是一个神奇的方法,用于声明对象初始化...
  • 这篇文章主要介绍了php将大写命名转换成下划线分割命名,本文讲解对一些不习惯大写风格的命名方法如帕斯卡命名、驼峰命名法进行转换的方法,需要的朋友可以参考下有时候需要把一个字符串中的大写转换成 _+小写的方式,...
  • 书写很大的数时,可使用下划线将其中的数字分组,使其更清晰易读. 当你打印这种使用下划线定义的数字时,Python不会打印其中的下划线. 这是因为存储这种数时,Python会忽略其中的下划线. 将数字分组时,即使不是将每三位...
  • Python中下划线---完全解读(转)

    千次阅读 2020-12-06 05:41:07
    Python 用下划线作为变量前缀和后缀指定特殊变量_xxx 不能用’from module import *’导入__xxx__ 系统定义名字__xxx 类中的私有变量名核心风格:避免用下划线作为变量名的开始。因为下划线对解释器有特殊的意义,...
  • 1、需求:判断字符串是否由大小写组合,如是,则在小写与大写之间加下划线 2、实现 public static void main(String[] args) { //字符串 String key="iterName"; //小写个数 int lower=0; //大写个数 int ...
  • 两种方式设置单元格的下划线

    千次阅读 2016-11-30 15:40:47
    在设计填报报表时,经常需要设置单元格的下划线。实现单元格下划线有两种方式,分别为下边框线和单元格下划线风格。   一、 使用下边框线来实现下划线 使用下边框线实现下划线,操作如下: 第一步,选中需要...
  • Web上的下划线样式

    千次阅读 2020-06-27 00:04:51
    对链接下方的下划线进行样式设置可能是一项棘手的工作,而我经常会视情况而忘记最佳方法。 不过,值得庆幸的是, 约翰·詹姆森 ( John Jameson)使我们加快了这篇宾客帖子的速度。 有多种不同的样式可以用来标记...
  • 根据下划线截取字符串

    千次阅读 2020-03-23 17:48:23
    String uid = "12927_832ade8dea014e34904f74c743ed0550_20200319"; System.out.println( uid.split("_")[0]);
  • 这个是Python 3.6以上版本的新增特性,可以用下划线来分割数字以提高可读性。 dec_base = 1_000_000 bin_base = 0b_1111_0000 hex_base = 0x_1234_abcd print(dec_base) # 1000000 print(bin_base) # 240 print...
  • 先上效果: 代码如下: <!...鼠标移入下划线展开</title> <style type="text/css"> .underline{ width: 200px; height: 50px; background: red; margin: 20px; position.
  • 1.css文件中,文本的段落缩进为 text-indent:缩进值 缩进单位为em,如下图所示: 2.单词之间的间隔为 word-...3.设置文字的下划线为 text-decorction:underline 如下图所示: 4.设置文本不换行 ...
  • sublime光标变成下划线

    千次阅读 2020-02-10 11:27:45
    电脑sublime光标变成下滑横线 解决办法:笔记本:fn+insert(delete) 台式或者insert和delete键分开的键盘:直接insert
  • /** * JSON的驼峰和下划线互转帮助类 * * @author yangzhilong * */ public class JsonUtils { /** * 将对象的大写转换为下划线加小写,例如:userName-->user_name * * @param object * @return * @throws ...
  • Python中的下划线(_)的五种用法

    千次阅读 2020-08-04 11:42:52
    前言 在Python中,下划线(_)是特殊的。如果您是python程序员,对于for _ in range(10),以及__init__(self)的语法可能比较熟悉。 ...5、将数字的值分开。 在解释器中使用时 python解释器将最后一个

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,972
精华内容 14,388
关键字:

下划线分开