mysql与JFinal的数据关系

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: mysql与JFinal的数据关系

mysql与jfinal在使用过程中,一定要弄清楚数据关系,否则容易发生类型不匹配的错误。


一、关系整理


为此,我根据jfinal的源码和mysql的数据字段类型,整理列表如下:


mysql jfinal 例子 编号

varchar, char, enum, set, text, tinytext, mediumtext, longtext String getStr(“xxx”) 0001

int, integer, tinyint(n) n > 1, smallint, mediumint int getInt(“xxx”) 0002

bigint, unsign int long getLong(“xxx”) 0003

unsigned bigint BigInteger getBigInteger(“xxx”) 0004

date, year Date getDate(“xxx”) 0005

time Time getTime(“xxx”) 0006

timestamp, datetime Timestamp getTimestamp(“xxx”) 0006

real, double Double getDouble(“xxx”) 0007

float Float getFloat(“xxx”) 0008

bit, tinyint(1) Boolean getBoolean(“xxx”) 0009

decimal, numeric BigDecimal getBigDecimal(“xxx”) 0010

binary, varbinary, tinyblob, blob, mediumblob, longblob byte[] getBytes(“xxx”) 0011

extends from Number Number getNumber(“xxx”) 0012

二、tinyint


在mysql中,tinyint(n)中的n对jfinal的数据转换有影响:


n>1时,jfinal要使用getInt。

n=1时,jfinal要使用getBoolean。

三、unsigned


在mysql中unsigned表示有无符号,举例来说:


unsigned int,表示数据>0,不包含负数,那么jfinal就要使用getLong。

unsigned bigint,表示数据>0,不包含负数,那么jfinal就要使用getBigInteger。

四、int(m)


关于mysql中int(m)中的m,这当然包含bigint(m)的m。


int[(m)]

有符号值:-2147683648 到2147683647(- 231 到231- 1)

无符号值:0到4294967295(0 到232 - 1) 4个字节

这意味着,如果你的数据字段是这样子的话


`uid` int(11) NOT NULL DEFAULT '0' COMMENT '用户id'


那么m=11是正确的,因为考虑到“-”(负数),长度最大为11位。


而如果你的数据字段是这样子的话


`uid` int(11) unsigned NOT NULL COMMENT '用户id'


那么m=11是没有意义的,因为最大长度为10位,如果你比较专业的话,此时,你的数据字段就应该是这样子的


`uid` int(10) unsigned NOT NULL COMMENT '用户id'


五、jfinal的api


只看如下代码:

/**
  * Get attribute of mysql type: int, integer, tinyint(n) n > 1, smallint, mediumint
  */
 public Integer getInt(String attr) {
  return (Integer)attrs.get(attr);
 }
 /**
  * Get attribute of mysql type: bigint, unsign int
  */
 public Long getLong(String attr) {
  return (Long)attrs.get(attr);
 }


方法很详细的介绍了应该匹配哪一种mysql数据类型。


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
12天前
|
缓存 NoSQL 关系型数据库
13- Redis和Mysql如何保证数据⼀致?
该内容讨论了保证Redis和MySQL数据一致性的几种策略。首先提到的两种方法存在不一致风险:先更新MySQL再更新Redis,或先删Redis再更新MySQL。第三种方案是通过MQ异步同步以达到最终一致性,适用于一致性要求较高的场景。项目中根据不同业务需求选择不同方案,如对一致性要求不高的情况不做处理,时效性数据设置过期时间,高一致性需求则使用MQ确保同步,最严格的情况可能涉及分布式事务(如Seata的TCC模式)。
36 6
|
19天前
|
SQL 关系型数据库 MySQL
轻松入门MySQL:保障数据完整性,MySQL事务在进销存管理系统中的应用(12)
轻松入门MySQL:保障数据完整性,MySQL事务在进销存管理系统中的应用(12)
|
26天前
|
关系型数据库 MySQL
elasticsearch对比mysql以及使用工具同步mysql数据全量增量
elasticsearch对比mysql以及使用工具同步mysql数据全量增量
20 0
|
29天前
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
20 1
|
29天前
|
Java 关系型数据库 数据库连接
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
24 1
|
1月前
|
SQL 关系型数据库 MySQL
MySQL怎样删除重复数据,只保留一条?
MySQL怎样删除重复数据,只保留一条?
|
29天前
Mybatis+mysql动态分页查询数据案例——条件类(HouseCondition)
Mybatis+mysql动态分页查询数据案例——条件类(HouseCondition)
15 1
|
29天前
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
21 1
|
29天前
Mybatis+mysql动态分页查询数据案例——房屋信息的实现类(HouseDaoMybatisImpl)
Mybatis+mysql动态分页查询数据案例——房屋信息的实现类(HouseDaoMybatisImpl)
21 2
|
29天前
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
15 1