如何将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数据库的表结构和其他数据库对象等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)