精华内容
下载资源
问答
  • column

    千次阅读 2017-02-13 17:19:02
    @Column(name = “F_FileFuncType”, columnDefinition = “char(1) default ” comment ‘文件类型:A建筑照片,B配电柜照片,C支路布置图,D部署方案’”) private char fileFuncType;@Column(name = “F_File...
    @Column(name="columnName";boolean unique() default false;boolean nullable() default true;
    boolean insertable() default true;boolean updatable() default true;
    String columnDefinition() default "";
    String table() default "";
    int length() default 255;
    int precision() default 0; // decimal precision
    int scale() default 0; // decimal scale

    name 可选,字段名(默认值是属性名)
    unique 可选,是否在该字段上设置唯一约束(默认值false)
    nullable 可选,是否设置该字段的值可以为空(默认值false)
    insertable 可选,该字段是否作为生成的insert语句中的一个字段(默认值true)
    updatable 可选,该字段是否作为生成的update语句中的一个字段(默认值true)
    columnDefinition 可选: 为这个特定字段覆盖sql DDL片段 (这可能导致无法在不同数据库间移植)
    table 可选,定义对应的表(默认为主表)
    length 可选,字段长度(默认值255)
    precision 可选,字段数字精精度(默认值0),表示数字中的有效位,如果没有指定precision的话,Oracle将使用38作为精度。
    scale 可选,如果字段数字刻度可用,表示数字小数点右边的位数,如果把scale设成负数,Oracle将把该数字取舍到小数点左边的指定位数。在此设置(默认值0)
    例如:

    @Column(columnDefinition="int default 0",nullable=false,insertable=false,updatable=false)
    Integer enMenuVerTag;//英文菜品是否已经校验   //0:未校验   1:已校验
    @Column(columnDefinition="varchar(255) default 'x'",nullable=false,insertable=false,updatable=false)
    String enMenuVerId;//英文菜品校验人
    @Temporal(TemporalType.TIMESTAMP)
    @Column(columnDefinition="TIMESTAMPTZ   default '2009-01-01 00:00:00'",nullable=false,insertable=false,updatable=false)
    Date enMenuVerTime;//英文菜品校验时间
    @Column(name = "F_FileFuncType", columnDefinition = "char(1) default '' comment '文件类型:A建筑照片,B配电柜照片,C支路布置图,D部署方案'")
    private char fileFuncType;
    @Column(name = "F_FileDesc", nullable = true, columnDefinition = "varchar(80) default NULL comment '文件描述'")
    private String fileDesc;
    @Column(name = "F_FileSize", columnDefinition = "int default 0 comment '文件大小:单位byte'")
    private int fileSize;
    @Column(name = "F_FileDate", nullable = true, columnDefinition = "datetime  COMMENT '上传时间'")
    private Date fileDate;
    @Column(name = "F_BuildLong", nullable = true, columnDefinition = "numeric(18,4) DEFAULT 0 COMMENT '建筑坐标-经度,建筑任意点的经度读数(默认为东经,单位为度,如131.2576度)'")
    private BigDecimal buildLong;
    @Column(name = "F_IsStandard", nullable = true, columnDefinition = "bit DEFAULT  0  COMMENT'是否是标杆建筑,False–否, default  True–是'")
    private boolean isStandard;

    1.String映射为nvarchar

    方法一:
    Hibernate映射到数据库时,String类型被映射为了varchar
    对于String类型,你可能是这样映射的

    @Column(length = 20 , nullable = false , unique = true)  
    private String name;  

    查看数据库,你会发现name字段应该是这样 name varchar(20);
    现在我们修改一下Annotation,让他映射为 name nvarchar(20)

    @Column(length = 20 , nullable = false , unique = true , columnDefinition="nvarchar(20)")  
    private String name;  

    再查看数据库,你会发现现在应该是 name nvarchar(20);

    注意:加上columnDefinition之后,length好像没有作用了,必须要在columnDefinition的value中指定长度。

    @Column(nullable = false , unique = true , columnDefinition="nvarchar(20)")  
    private String name; 

    方法二:
    继承SQLServerDialect ,写一个自己的,然后再xml中配置一下。
    方法网址:http://stackoverflow.com/questions/1099413/how-can-hibernate-map-the-sql-data-type-nvarcharmax

    public class SQLServerNativeDialect extends SQLServerDialect {  
         public SQLServerNativeDialect() {  
             super();  
             registerColumnType(Types.VARCHAR, "nvarchar($l)");  
             registerColumnType(Types.CLOB, "nvarchar(max)");  
    }  
    
    public String getTypeName(int code, int length, int precision, int scale) throws HibernateException {  
            if(code != 2005) {  
                return super.getTypeName(code, length, precision, scale);  
            } else {  
                return "ntext";  
            }  
        }  
    }  

    总结:
    顺便查了一下columnDefinition,发现他可以设置默认值。Hibernate会把columnDefinition 的内容直接写在生成标的ddl中,因此语法必须正确。

    @Column(columnDefinition="int default 0",nullable=false)  
    columnDefinition
    public abstract java.lang.String columnDefinition

    (摘)可选: 为这个特定字段覆盖sql DDL片段 (这可能导致无法在不同数据库间移植)

    2.update

    XML中设置property 标签 update = “false” ,如下:我们设置 state 这个属性在更改中不做更改

    <property name=”state” update=”false”></property>

    如有几个字段不做更改,需在相应property,增加update=”false”

    在Annotation中 在属性GET方法上加上

    @Column(updatable=false)

    我们在执行 update方法会发现,state 属性 不会被更改。
    缺点:不灵活。如需要有多个字段指定不同的组合修改时不适用。

    3.int float定义

    可以使用@colum注解中的columnDefinition属性
    float:

    @Column(columnDefinition="number(10,2)")  
    public float getPrice() {  
        return price;  
    }

    int:

    @Column(columnDefinition="number(2) default 0")  
    public int getSpecialPrice() {  
        return specialPrice;  
    }  

    4.bigdecimal

    1)如果不指定number的长度,或指定长度n>18

       id number not null,转换为pojo类时,为java.math.BigDecimal类型
    

    2)如果number的长度在10 <= n <= 18

       id number(n) not null,转换为pojo类时,为java.lang.Long类型
    

    3)如果number的长度在1 <= n <= 9

       id number(n) not null,转换为pojo类时,为java.lang.Integer类型
    
    展开全文
  • 一、基类Column概述 Column是datax中所有数据类型的基类,里面有3个属性,以及一个构造方法,外加一个枚举类; public abstract class Column { private Type type; private Object rawData; private int ...

    一、基类Column概述

    Column是datax中所有数据类型的基类,里面有3个属性,以及一个构造方法,外加一个枚举类;

    public abstract class Column {
    
    	private Type type;
    
    	private Object rawData;
    
    	private int byteSize;
    
    	public Column(final Object object, final Type type, int byteSize) {
    		this.rawData = object;
    		this.type = type;
    		this.byteSize = byteSize;
    	}
    
    	//省去其他非关键方法
    
    	public enum Type {
    		BAD, NULL, INT, LONG, DOUBLE, STRING, BOOL, DATE, BYTES
    	}
    }
    

    二、Column衍生出的类型对象

    一个爷爷衍生出的7个金刚葫芦娃
    在这里插入图片描述

    在这里插入图片描述

    三、用Column及其子类构建出的记录对象Record

    Record家族系列(一般情况下DefaultRecord使用较多)
    在这里插入图片描述
    在这里插入图片描述
    可以通过idea的全局搜索 record.addColumn方法,看看各个读插件是怎么转成Datax内部Column的。具体方法在Record中

    基类Record
      /**
       * 给该record 添加列
       *
       * @param column
       */
      void addColumn(Column column);
    
    实现类DefaultRecord
    
    	@Override
    	public void addColumn(Column column) {
    		columns.add(column);
    		incrByteSize(column);
    	}
    

    四、创建Record的RecordSender类

    RecordSender主要方法
    在这里插入图片描述
    RecordSender家族类

    在这里插入图片描述
    RecordSender主要通过createRecord来构建一个Record


    五、RecordSender,Record,Column关系总结

    1、RecordSender中Record createRecord() 可以创建一个Record
    2、Record中void addColumn(Column column)可以将column添加到该记录中



    注:

    1. 对源码进行略微改动,主要修改为 1 阿里代码规约扫描出来的,2 clean code;

    2. 所有代码都已经上传到github(master分支和dev),可以免费白嫖

    展开全文
  • ALTER COLUMN:设置或删除列的默认值(操作速度非常快) 例子: alter table film alter column rental_duration set default 5; alter table film alter column rental_duration drop default; CHANGE COLUMN...

    ALTER COLUMN:设置或删除列的默认值(操作速度非常快)
    例子:

    alter table film alter column rental_duration set default 5;  
    alter table film alter column rental_duration drop default;
    

    CHANGE COLUMN:列的重命名、列类型的变更以及列位置的移动
    例子:

    ALTER TABLE MyTable CHANGE COLUMN foo bar VARCHAR(32) NOT NULL FIRST;  
    ALTER TABLE MyTable CHANGE COLUMN foo bar VARCHAR(32) NOT NULL AFTER baz; 
    

    MODIFY COLUMN:除了不能给列重命名之外,他干的活和CHANGE COLUMN是一样的
    例子:

    ALTER TABLE MyTable MODIFY COLUMN foo VARCHAR(32) NOT NULL AFTER baz;
    展开全文
  • Data truncated for column at row

    万次阅读 2016-05-01 20:59:47
    Mysql在插入数据时提示: Data truncated for column 'uuid' at row 1 这个错误,其实就是插入的数据不合法造成的, 比如:乱码,超出字段长度,非法字符等, 我这里的插入的数据超出字段长度造成的。。。

    Mysql在插入数据时提示:

             Data truncated for column ' ' at row 1  

    这个错误,其实就是插入的数据不合法造成的。

    比如:

           乱码,超出字段长度,非法字符等,

         我这里的插入的数据超出字段长度造成的。

    展开全文
  • Hide column

    千次阅读 2020-09-28 15:39:27
    **pycharm操作数据库过程中可能会点到 Hide column ** **此时会发现 改列消失,如何恢复呢? 如下 **
  • 如果Row里面嵌套Row,或者Column里面再嵌套Column,那么只有对最外面的Row或Column会占用尽可能大的空间,里面Row或Column所占用的空间为实际大小,下面以Column为例说明: Container( color: Colors.green, child...
  • -- 设置或删除列的默认值。该操作会直接修改.frm文件... ALTER TABLE dsp_ad_center.XianDuan ALTER COLUMN xxx SET DEFAULT 100; -- 共 0 行受到影响 -- -- 执行耗时 : 0.011 sec -- 传送时间 : 1.037 sec -- 总耗时
  • column 命令

    千次阅读 2018-03-30 15:10:33
    column的其他用法如下:选项含义-c 字符数指定显示的列宽-s“ 分隔符 “使用-t选项时,指定分隔符(允许指定多个分隔符)-t判断输入行的列数来创建一个表。分隔符是使用在-s中指定的字符。如果没有指定分隔符,...
  • @Column

    千次阅读 2018-06-23 14:19:17
    [@Column] 用于指定列的相关属性 name - 可选,表示数据库表中列的名称。 默认为属性或字段名称。 nullable - 可选,表示该字段是否允许为 null,默认为 true(null) 若设置为false 则该列不可为null值 unique ...
  • 成功解决 绘图时行坐标名或列坐标名出现f0、f1、f2、f3、f4、f5(或者Column_0、Column_1、Column_2、Column_3)等命名而不是想要的具体对应字段命名 目录 解决问题 解决思路 解决方法 解决问题 ...
  • mysql:Column id cannot be null

    万次阅读 2018-07-11 17:03:04
    由于在项目中更改了数据库的字段,然后再连接测试的时候发现总是说:Column 'id' cannot be null 这个问题,也就是数据库的id不能为空,因为是主键。 二、问题解决 其实很简单,可能是自己改动了数据库,然后主键...
  • Spark之Column

    千次阅读 2019-05-11 17:07:22
    如果使用DataFrame或DataSet分析数据,那么Column这个类是无时无刻都在使用的 什么是Column Column是DataFrame中的数据计算出来的 根据字面意思也可以知道,它就是代表DataFrame的一列数据,它是org.apache.spark....
  • 列间隙和边框多列布局之后,通过 column-gap属性和 column-rule属性来设置相邻两列之间的间隙及边框的样式,column-rule 会出现在列间隙的中间位置,column-gap 和 column-rule 的高度等于列的高度。column-...
  • 代码执行抛出异常:JSONDecodeError: Expecting value: line 1 column 1 (char 0) 原因 代码中使用了 json.loads 来将 JSON 数据解析成 Python 数据类型: import json ...many codes... data = json.load...
  • SQLAlchemy - Column详解

    千次阅读 2019-09-18 21:44:58
    SQLAlchemy - Column详解 Column常用参数: default:默认值 nullable:是否可有 primary_key:是否为主键 unique:是否唯一 autoincrement:是否自动增长 onupdate:更新的时候执行的函数 name:该属性在数据库中的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 194,436
精华内容 77,774
关键字:

column