精华内容
下载资源
问答
  • 我这里使用到的是Spring Data Jpa,创建一个实体类之后,自动创建对应的数据表到数据库,但是我在实体类中写的泛型属性值到数据库中却变成了int类型,如下:  /**  * 数据类型  */  private DataType dataType; ...

    我这里使用到的是Spring Data Jpa,创建一个实体类之后,自动创建对应的数据表到数据库,但是我在实体类中写的泛型属性值到数据库中却变成了int类型,如下:

        /**
         * 数据类型
         */
        private DataType dataType;

    到了数据库中却变成了int类型的字段,不科学。后来才发现泛型类型的数据存储到数据库中有两种存储格式,第一是int,第二个是String类型也就是varchar,默认是int类型。

    解决办法:如果想要换为string类型,需要在属性值上添加注解

    @Enumerated(EnumType.STRING)

    结果也就是:

        /**
         * 数据类型
         */
        @Enumerated(EnumType.STRING)
        private DataType dataType;

    这样就可以实现存储到数据库中是varchar类型的数据了

    展开全文
  • 首先我们先了解一下基本数据类型 基本数据类型有八种 bit:一个字节的数据类型(8位),范围是-128到127。 short:两个字节,占16位。范围是-(2的15次方)到(2的15)-1一般不用这种数据类型int:这是我们最常见也是...

    首先我们先了解一下基本数据类型
    基本数据类型有八种

    • bit:一个字节的数据类型(8位),范围是-128到127。
    • short:两个字节,占16位。范围是-(2的15次方)到(2的15)-1一般不用这种数据类型。
    • int:这是我们最常见也是最常用的数据类型。现在一般的计算机都是64位操作系统。(位)是指计算机一次计算能够处理的二进制的个数。一下各种类型都是在这种操作系统下进行讨论。int类型的数据占4个字节也就是32位。所以int的范围是有多大呢?可以通过排列组合的知识进行计算。一位二进制数可以表示2的一次方个数,两位表示4个,则32位可以表示2的32的数(无符号的数),有符号的数范围是-2147483648到2147483647,可以表示21亿的数。显然用int存电话号码是不够的,再用数据库进行操作的时候要考虑好数据类型。
    • long:占64个字节,有符号的范围大约是-(2的63次方)到(2的63次方-1)对的你应该注意到正数比负数小一。因为还有一个0,
    • float:在64位操作系统下,float类型的数据占32位,一般用来表述小数。但是他并不是用排列组合的方式来表示数的大小,而是通过IEEE754标准来进行存数据。32位中第一位是符号位,0是正数,1是负数。后八位是阶码(假设为k),这八个二进制位算出来再剪掉127得到指数,后面的23位是小数部分。具体的如下表示
      ±±-------±----------------------+
      |S| Exp | Fraction |
      ±±-------±----------------------+
      S表示符号位 Exp表示阶码,实际要减去127,Fraction表示小数部分。
      貌似可以达到2的100多次方数,但实际却不是这样的,因为float数据类型只有32位,所以当表示很大的数时,是间断表示的,也就是有的比较大的数(一般达到千万级)是不能准确表示的,是会失去精度的。这种弊端尤其在int转成float时候表现的尤为明显,而float的范围比int大,所以要进行强制转换例如:
      float a=(int) b;
      当然也会丧失精度。所以float这种数据要慎用,尤其是数据库操作,可以用double表示小数更为精确。
    • double
      这种数据类型的范围比较大,表示的也比较精确。这种数据类型是比较常用的。推荐用double代替float使用。
    • bool
      布尔类型,取值为true或者false。常用于逻辑判断。
    • char类型
      字符类型,一般存英文字母。比如char a=‘a’,注意是单引号
      总结:一般声明数据类型的时候都用int double,注意各种数据的特点及范围。
    展开全文
  • MySQL字段类型对应Java字段

    千次阅读 2020-03-17 11:33:09
    MySQL Connector/J 对于 MySql 数据类型Java 数据类型之间的转换是很灵活的: 一般来讲,任何 MySql 数据类型都可以被转换为一个 java.lang.String。 任何 MySql 数字类型都可以被转换为任何一种 Java 数字类型。...

    前言

    MySQL Connector/J 对于 MySql 数据类型和 Java 数据类型之间的转换是很灵活的: 一般来讲,任何 MySql 数据类型都可以被转换为一个 java.lang.String。 任何 MySql 数字类型都可以被转换为任何一种 Java 数字类型。 (当然这样也可能出一些四舍五入,溢出,精度丢失之类的问题)。

     

    Java基础类型与包装类型

    a)   如果数据库字段是允许为空的,使用包装类。   如果不允许为空,使用包装的时候,如果你往数据库插入null值,此时就会抛出异常。   然后你就可以对异常进行捕获并处理。

    b)   使用基本数据类型的时候,如果字段是NULL,那么JDBC会返回0,但是这里会有一个问题。   有可能0在你的业务逻辑代表着特定含义,这时候就可能出现一些意想不到的后果。 总结:在项目中去使用包装类型而不是基本数据类型,这样可以使你编写代码更简单

     

    ResultSet.getObject() 对 MySql 类型和 Java 类型转换表

    MySql 类型名GetColumnClassName 返回值返回的 Java 类
    bit(1) (MySQL-5.0)BITjava.lang.Boolean
    bit(大于1) (MySQL-5.0)BITbyte[]
    tinyintTINYINT如果 tinyInt1isBit 配置设置为 true(默认为 true),是java.lang.Boolean,存储空间为 1;否则是为 java.lang.Integer
    bool booleanTINYINT参见 TINYINT。这些是 TINYINT(1) 另一种写法
    smallint(M) [unsigned]SMALLINT [UNSIGNED]java.lang.Integer(不管是否无符)
    mediumint(M) [unsigned]MEDIUMINT [UNSIGNED]java.lang.Integer
    int integer(M) [unsigned]INTEGER [UNSIGNED]java.lang.Integer;无符的话是 java.lang.Long
    bigint(M) [unsigned]BIGINT [UNSIGNED]java.lang.Long;无符的话是 java.math.BigInteger
    float(M,D)FLOATjava.lang.Float
    double(M,B)DOUBLEjava.lang.Double
    decimal(M,D)DECIMALjava.math.BigDecimal
    dateDATEjava.sql.Date
    datetimeDATETIMEjava.sql.Timestamp
    timestamp(M)TIMESTAMPjava.sql.Timestamp
    timeTIMEjava.sql.Time
    year(2/4)YEAR如果 yearIsDateType 配置设置为 false,返回的对象类型为 java.sql.Short;如果设置为 true(默认为 true),返回的对象类型是 java.sql.Date,其具体时间是为一月一日零时零分
    char(M)CHARjava.lang.String(除非该列字符集设置为 BINARY,那样返回 byte[])
    varchar(M) [binary]VARCHARjava.lang.String(除非该列字符集设置为 BINARY,那样返回 byte[])
    binary(M)BINARYbyte[]
    varbinary(M)VARBINARYbyte[]
    tinyblobTINYBLOBbyte[]
    tinytextVARCHARjava.lang.String
    blobBLOBbyte[]
    textVARCHARjava.lang.String
    mediumblobMEDIUMBLOBbyte[]
    mediumtextVARCHARjava.lang.String
    longblobLONGBLOBbyte[]
    longtextVARCHARjava.lang.String
    enum('value1','value2',...)CHARjava.lang.String
    set('value1','value2',...)CHARjava.lang.String

     

     

    Mysql字段类型

    decimal(8,2): 有2位小数的定点数,定点数支持很大的数(甚至是超过int,bigint存储范围的数) decimal不会损失精度,存储空间会随数据的增大而增大。double占用固定空间,较大数的存储会损失精度。

    字符串型: 定长与变长的区别,CHAR类型占用空间比较大,但是处理速度比VARCHAR快。 如果长度变化不大,最好选择CHAR类型。对于长度不确定的,最好选择VARCHAR。

     

     

    展开全文
  • MyBatis映射文件如何给数据库的int类型字段“插入”string类型记录

    MyBatis映射文件如何给数据库的int类型字段“插入”string类型记录。

    数据库中对应字段名称和类型如下:
    在这里插入图片描述
    给数据库的int类型字段“插入”string类型记录的时候,有如下的规律:在字符串类型的字段下插入数字会自动转换为字符串,在数字类型的字段下插入内容是数字的字符串会自动将字符串转换为数字。

    mapper映射文件中的插入语句如下:

    <!--  在字符串类型的字段下插入数字会自动转换为字符串
     在数字类型的字段下插入内容是数字的字符串会自动将字符串转换为数字 -->
    <insert id="addRoles">
        insert into roles_user values
        <foreach collection="roles" separator="," item="role">
            (null , #{role}, #{uid})
        </foreach>
    </insert>
    

    接口中方法传入的参数:

    /**
     * 通过用户id给用户添加角色
     * @param roles
     * @param uid
     * @return
     */
    int addRoles(@Param("roles") String[] roles, @Param("uid") Long uid);
    

    测试结果如下:
    在这里插入图片描述

    展开全文
  • 有时候Mysql的int字段,会正确映射到Java的Integer类型,有时候又会映射到Java的Long类型上,最后终于找到原因。 原来是Mysql的int字段,勾选了unsigned无符号选项,这样就导致int类型,变成了long类型。 同理,...
  • 但是当实体类中有基本类型的时候,基本类型都有默认值的,比如boolean的默认值是false,int的默认值是0,这些默认值,有时候会影响我们的编程,比如boolean中的false,可能是也字段的一种情况,那么这
  • 项目中用mybatis3.x,用sql查询某个表类型int字段,那个表是空表,没有数据,结果抛异常了,原因是在对象中的属性为int,空表时,sql查询出来的是NULL,结果赋值时抛异常了。 org.apache.ibatis.bindi
  • 我们在设计数据库的时候,往往需要注意数据库字段类型java基本数据类型的对应关系,以便合理设计java实体;其实Mybaits里数据库字段类型java数据类型的转换,都是由一个个typeHandler进行转换,如:...
  • jsp页面传到java后台为空值,此时赋值给该字段null,如下: entity.setTextureId(StringUtils.isEmpty(textureId[i])?null:textureId[i]); entity.setTextureName(StringUtils.isEmpty(textureName[i])?null:...
  • 如果返回字段值为null,int类型会报错,而Integer不会报错。因为int类型声明的是变量,而null则是对象所以会报错。而Integer是包装类,包装类符合对象的特征提供了一些必要的属性和方法。 int类型的默认值为0,...
  • 错误提示 数据库中表的字段 ...所以在java中定义为int型,是错误的,因为int无小数; 同理,有其小数位数和长度都达不到double的范围,所以double也错, 将java中sal定义为float就对了 ...
  • **java基本数据类型有八种:** byte、short、int、long、float、double、char、boolean **总结java和mysql、oracle、pgsql数据类型对应关系** | java|byte | short|int|long|float|double|char|boolean|...
  • oracle字段类型java对象类型对照表

    千次阅读 2013-11-19 16:47:10
    Mysql Oracle Java BIGINT NUMBER(19,0) java.lang.Long BIT RAW byte[] BLOB BLOB RAW byte[] CHAR CHAR java.lang.String ...java.sql.
  • oracle使用java操作clob类型字段

    千次阅读 2015-12-30 13:34:14
    java插入和读取oracle中的clob类型
  • package com.zkn.reflect.classinfo; import java.lang.reflect.Field; import java.lang.reflect.Type; import com.zkn.reflect.scope.Company; import com.zkn.reflect.scope.People; /**  * Title:  *
  • Sql字段类型对应Java实体类型

    千次阅读 2018-06-27 16:06:39
    编号 数据库类型 JDBC类型 JDBC索引 1 int java.lang.Integer 4 2 varchar java.lang.String 12 3 char java.lang.String 1 4 nchar java.lang.String 1 5 nvarchar java.lang.String 12 ...
  • 如何将“uid”为“14743423697176l”的“logout_time”字段int32类型转换为int64类型? 目前知道$type用来转换,但具体怎么写还请大神解答! 下面是错误代码: BasicDBObject bson = new BasicDBObject("uid", ...
  • 面试官:兄弟,说说基本类型和包装类型的区别吧

    万次阅读 多人点赞 2019-09-29 08:36:07
    Java 的每个基本类型都对应了一个包装类型,比如说 int 的包装类型为 Integer,double 的包装类型为 Double。基本类型和包装类型的区别主要有以下 4 点。
  • 1:因为8种基本类型byte,short,int,long,char,float,double,boolean除了char没有默认值,其他都有默认值。 2:有默认值并不是好事,很可能在我们对数据库进行更新的时候,将数据错误的更新了。 3:定义一...
  • 以前有小伙伴在公众号留言问过如何通过java获取数据库的所有表、及表里字段的信息,只是私信回复过。在最近的项目中架构部提出了一个数据源的配置需求,就是需要配置公司所有系统...
  • mysql中我查询的时候怎么将3个int类型字段的数据转换成时间日期格式, 比如我的字段是2017 5 16 怎么转换成2017-05-16这种格式的
  • java运算类型转化int long

    千次阅读 2016-09-28 15:17:58
    大家都知道,在进行运算时,java会隐式的自动进行类型转化,那么有哪些情况会进行转化呢?总结如下: 一、算术运算符 单目运算符:+(取正)-(取负) ++(自增1) –(自减1) 1.1 +(取正)-(取负) 当操作数...
  • Java查询MySQL数据库的字段类型

    千次阅读 2011-05-31 17:52:00
    //Java查询MySQL数据库的字段类型 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; import ...
  • 映射表如下:下面就举个例子来讲(JAVA插入MySql的datetime类型的简单的例子):看了映射表可知:我们可以以Timestamp类型的值插入到数据库中数据库中表的设计为这样(有两个字段,id为整型是主键,create_on为...
  • 如何判断类或变量、方法的修饰符,可以使用Java反射机制中,Field的getModifiers()方法返回int类型值表示该字段的修饰符,即这个方法就是返回一个int型的返回值,代表类、成员变量、方法的修饰符。  其中,该修饰...
  • java基本类型与包装类型区别

    千次阅读 2016-08-12 17:56:33
    java基本类型与包装类型区别 Java基本类型都有固定的存储空间,不像其他大多数语言那样随机器硬件架构的变化而变化,这种占存储空间大小的不变性是java程序比其他大多数语言编写的程序更具可移植性的原因之一...
  • Hibernate允许自定义复杂数据类型的对象字段映射。Hibernate为用户提供了Java and SQL descriptors和UserType接口方式自定义自己的数据类型映射。我们首选Java and SQL descriptors方式,因为它允许更好地分离 Java-...
  • java中传递参数的两种方式(int基本类型),int[](对象类型)): http://blog.csdn.net/maoyeqiu/article/details/49250339
  • MySQL中的字段类型对应于Java对象中的数据类型

    千次阅读 多人点赞 2021-03-03 14:50:53
    还在纠结javaType和jdbcType?MySQL数据类型对应Java什么类型?JdbcType类型Java对象有什么对应关系?数据库类型的Integer是对应int还是对应Integer?本文带你一探究竟!

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 415,572
精华内容 166,228
关键字:

java基本类型int没有字段

java 订阅