如何将mysql中枚举类型的数值在前台遍历为汉字

如何将mysql中枚举类型的数值在前台遍历为汉字,第1张

如何将mysql中枚举类型的数值在前台遍历为汉字

publicenumtestenum

{

aa,

bb,

cc,

dd

};

foreach

(testenum

item

in

EnumGetValues(typeof(testenum)))

{

}

EnumGetValues(typeof(枚举的名称));可以获得指定枚举的枚举值。

EnumGetNames(typeof(枚举的名称));可以获得指定枚举的枚举名称。

枚举类型是一种的值类型,它用于声明一组命名的常数。

(1)枚举的声明:枚举声明用于声明新的枚举类型。

访问修辞符 enum 枚举名:基础类型

{

枚举成员

}

基础类型必须能够表示该枚举中定义的所有枚举数值。枚举声明可以显式地声明 byte、sbyte、short、ushort、int、uint、long 或 ulong 类型作为对应的基础类型。没有显式地声明基础类型的枚举声明意味着所对应的基础类型是 int。

(2)枚举成员

枚举成员是该枚举类型的命名常数。任意两个枚举成员不能具有相同的名称。每个枚举成员均具有相关联的常数值。此值的类型就是枚举的基础类型。每个枚举成员的常数值必须在该枚举的基础类型的范围之内。 示例:

public enum TimeofDay:uint

{

Morning=-3,

Afternoon=-2,

Evening=-1

}

产生编译时错误,原因是常数值 -1、-2 和 –3 不在基础整型 uint 的范围内。

(3)枚举成员默认值

在枚举类型中声明的第一个枚举成员它的默值为零。

以后的枚举成员值是将前一个枚举成员(按照文本顺序)的值加 1 得到的。这样增加后的值必须在该基础类型可表示的值的范围内;否则,会出现编译时错误。

Oracle中相关的系统表都属于sys用户,描述表结构的是sysall_tab_columns,你在SQLPlus中用desc sysall_tab_columns可以看得很清楚:大致是table_name,column_name,data_length,data_precision(NUMBERP类型字段的长度),data_scale(小数位),nullable这几个字段。

我用VC写了一个Oracle数据库对象管理的程序,可以管理table,view,procedure,function等所有数据库对象,自动生成出它们的创建源码,包括字段注释、约束脚本等。你如果需要,可以告诉你相关资料。

另外,我用VC访问Oracle使用的是Oracle提供的OCI接口。

根据用户定义的枚举值与分片节点映射文件,直接定位目标分片。

用户在rulexml中配置枚举值文件路径和分片索引是字符串还是数字,DBLE在启动时会将枚举值文件加载到内存中,形成一个映射表

在DBLE的运行过程中,用户访问使用这个算法的表时,WHERE子句中的分片索引值会被提取出来,直接查映射表得到分片编号

与MyCat的类似分片算法对比

中间件

DBLE

MyCat

分片算法种类    enum 分区算法    分片枚举  

两种中间件的枚举分片算法使用上无差别。

开发注意点

分片索引1 整型数字(可以为负数)或字符串((不含=和换行符)

分片索引2 枚举值之间不能重复

Male=0Male=1

或者

123=1123=2

会导致分片策略加载出错

分片索引3 不同枚举值可以映射到同一个分片上

Mr=0Mrs=1Miss=1Ms=1123=0

运维注意点

扩容1 增加枚举值无需数据再平衡

扩容2 增加一个枚举值的分片数量数时,需要对局部数据进行迁移

缩容1 减少枚举值需要数据再平衡

缩容2 减少一个枚举值的分片数量数时,需要对局部数据进行迁移

配置注意点

配置项1 在 rulexml 中,可配置项为 <property name="defaultNode"> 、<property name="mapFile"> 和 <property name="type">

配置项2 在 rulexml 中配置 <property name="defaultNode"> 标签,非必须配置项,不配置该项的话,用户的分片索引值没落在 mapFile 定义的范围时,DBLE 会报错;若需要配置,必须为非负整数,用户的分片索引值没落在 mapFile 定义的范围时,DBLE 会路由至这个值的 MySQL 分片

配置项3 在 rulexml 中配置 <property name="mapFile"> 标签,范围映射文件的路径:若在映射文件在 DBLE_HOME/conf 或其中,则可以使用相对路径的形式配置,例如,映射文件是 DBLE_HOME/conf/map/table_maptxt 时,配置值就可以简写为 map/table_maptxt;映射文件在 DBLE_HOME/conf 目录以外时,需要使用绝对路径,但这种做法需要考虑用户权限等问题,因此不建议把映射文件放在 DBLE_HOME/conf 外。

配置项4 编辑 mapFile 所配置的文件

记录格式为:<枚举值>=<分片编号>

枚举值可以是整型数字,或任意字符(除了=和换行符),分片编号必须是非负整型数字,记录之间以换行分隔,一行仅能有一条记录,枚举值不能够是“DEFAULT_NODE”这个字符串,允许以“//”和“#”在行首来注释该行

配置项5 在 rulexml 中配置 <property name="type"> 标签;type 必须为整型;取值为 0 时,mapFile 的<枚举值>必须为整型;取值为非 0 时,mapFile 的<枚举值>可以是任意字符(除了=和换行符)

linq当然支持枚举,你用的是Linq2EF,它的查询时需要转换为sql语句的,所以必定是需要数据库支持的类型。如果数据库有相应字段那么在语句里把枚举强转int即可。但你既然数据库里根本没有这个字段,那么自然也不能用linq2ef做查询,显然必须先用linq2ef查询后把结果集toList/toArray之类转为实际集合而非表达式树后再用linq做查询,这时候如果你的实体类中这个字段就是枚举的话,那么直接用枚举也没问题。

在JS中将数据库中的1转换为启用,需要对JS代码进行编写和调用数据库API进行 *** 作。具体步骤如下:

1连接数据库:使用JS代码连接数据库,获取数据库对象。

2查询数据:使用JS代码查询数据库中的数据,获取需要转换的数据的值。

3转换数据:使用JS代码对查询到的数据进行转换,将1转换为“启用”或者其他指定的值。

4更新数据库:使用JS代码更新数据库中的数据,将转换后的值保存到数据库中。

5关闭数据库连接:使用JS代码关闭数据库连接,释放资源。

在进行这些 *** 作之前,需要先了解数据库的结构和API的使用方法,以便能够正确地编写JS代码。同时,还需要注意数据的类型和格式,确保转换结果正确无误。总之,将数据库中的1转换为启用需要使用JS编写相关代码,并调用数据库API进行 *** 作,这需要有一定的编程和数据库 *** 作的经验和技能。

数据库对象你可以从user_objects中查询 表你可以从tabs 或者 user_tables 中查询 字段你可以从 cols 或者 USER_TAB_COLUMNS 中查询 函数语法等可以从user_source 中查询 等等

这个要看你的 枚举, 是 仅仅一次只能选择一个的 还是一次可以选择多个的

例如你的

order_id order_status

1 SUCS(成功success)

2 PCES(处理process)

某行数据, 要么就是 SUCS(成功success) , 要么就是 PCES(处理process)

这种情况下, 用字符是比较合适的。

但是如果枚举是可以选择多个的, 例如:

id desc

1 无党派

2 知识分子

4 少数民族

8 女性

16

这种情况下, 如果一个人, 多个枚举都满足的情况下, 那么这种情况下, 使用 数字 是比较适合的。

也就是

如果某个人,是 无党派汉族女性研究生, 那么枚举值 = 1+2+8

以上就是关于如何将mysql中枚举类型的数值在前台遍历为汉字全部的内容,包括:如何将mysql中枚举类型的数值在前台遍历为汉字、C#中的枚举怎么使用、如何枚举Oracle数据库的表结构和其他数据库对象等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9660190.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存