-
在项目里面当静态变量多的时候是建在项目里的辅助类好,还是保存在数据库的一个表好5
在项目里面当静态变量多的时候是还还建在类好,还是保存在数据库的一个把数据都保存在数据库的一个表读取好?
比如:我们在项目常见的是否审核通过,常常:public static final String OPENTYPE_NO="0";//未發布 public static final String OPENTYPE_YES="1";//已發布
public class Constants { public static final String ADMIN_SESSION = "ADMIN_SESSION"; //管理员session 变量 public static final String FUNCID_SESSION = "FUNCID_SESSION"; //功能Session变量 public static final String FUNCID_SESSION_URL = "FUNCID_SESSION_URL"; //功能模块url变量 public static final String BENYI = "BENYI"; //本一 public static final String BENER = "BENER"; //本二 public static final String BENSAN = "BENSAN"; //本三 public static final String DAZHAUN ="DAZHAUN "; //大专 }
当我系统要求需要定义非常多的这种变量时是按上面的定义在类里面 ,还是把他们定义在 数据库,然后读取好呢?
table dictionary
id name value
1 benyi benyi
2 bener bener
3 bensan bensan
因为这个系统以后的的访问量会比较大
如果是写在数据库里以后要新增信息的时候,直接在数据库添加比较方便,比较规范,但是每次需要的时候都要频繁的读取这边表,会不会加重数据库的压力。
如果在类里定义,还需要改动程序源码。应该是直接加载在内存了吧 ,速度会被访问数据库的快吗?还是没有差别
请指点一下!
问题补充:robertliudeqiang 写道当然,如果一定要在类和表之间比较的话:
如果这些常量是不需要经常改的话(你提供的这些常量几乎完全不需要改),放在类里定义合适,如果需要经常改的话,放在属性文件或是表里都可以。
关键是有需要定义很多的变量,大部分是不用改动的,有差不多10 个是经常要改动的,现在在权衡到使用哪种,~ ~ 总不能两种都使用吧!! 谢谢您的回复2010年3月24日 13:39
5个答案 按时间排序 按投票排序
-
采纳的答案
引用关键是有需要定义很多的变量,大部分是不用改动的,有差不多10 个是经常要改动的,现在在权衡到使用哪种,~ ~ 总不能两种都使用吧!! 谢谢您的回复
经常改的放到属性文件里吧,尽量不要放到数据库。放到数据库的好处就是: 属性文件改了需要加载,数据库通常就不需要,缺点就是读取效率低,维护成本高(直接操作数据库有风险,如果不直接操作数据库,就必须提供接口给管理员,增加维护成本)
另外,不需要改动的还是放到类里 - 就象你定义的那样也是可以的。
两种侧率都使用是可以的,因为两者用途不一样,为了统一而统一意义不太大。2010年3月24日 14:45
-
你这还不算数据字典没必要放在数据库,放在数据库里,还要sql去查询,性能明显要慢得多,最终还是要加载到内存中,
如果是写在数据库里以后要新增信息的时候,直接在数据库添加比较方便,比较规范,但是每次需要的时候都要频繁的读取这边表,会不会加重数据库的压力。
是比较方便扩展新的常量,
如果在类里定义,还需要改动程序源码。应该是直接加载在内存了吧 ,速度会被访问数据库的快吗?还是没有差别
速度自然比访问数据库快多
综合灵活性和性能的因素,我的建议是写这些常量写到配置文件中,properties文件或xml文件,看你的需要了,
这样,在系统启动时,读取配置文件加载这些信息,定期检查文件是否修改,如果修改的话就重新加载配置文件,
这样,不用修改代码了,灵活性达到了,性能的话,读文件比数据库是要快些2010年3月24日 14:12
-
当然,如果一定要在类和表之间比较的话:
如果这些常量是不需要经常改的话(你提供的这些常量几乎完全不需要改),放在类里定义合适,如果需要经常改的话,放在属性文件或是表里都可以。2010年3月24日 13:57
-
你提供的例子用枚举比较好,原因可以参考“effective java”第二版,有详细说明,比如说,你提供的例子可以写成:
public enum SessionManager { ADMIN_SESSION { public String toString() { return "ADMIN_SESSION"; } }, FUNCID_SESSION { public String toString() { return "FUNCID_SESSION"; } }, FUNCID_SESSION_URL { public String toString() { return "FUNCID_SESSION_URL"; } } }
2010年3月24日 13:55
相关推荐
例如,在一个大型项目中,我们可以使用静态代码块来初始化一些公共的配置文件或数据库连接,而使用静态方法来提供一些公共的工具方法或辅助方法。 结论 Java 中的静态代码块和非静态代码块是两种不同的代码块,...
`DBHelper`通常是一个静态类,它包含了一系列静态方法,用于执行SQL命令、打开和关闭数据库连接、处理事务等。它的主要优点在于减少了代码重复,提高了代码复用性,降低了出错的可能性。对于不同的数据库系统(如SQL...
以读取名为N6-D2-J131.DBF的FoxPro数据库为例,创建一个新的类`CDataBaseSet`继承自`CRecordset`,可以使用MFC ClassWizard进行辅助。在新建类的过程中,指定类名`CDataBaseSet`,基类选择`CRecordset`,然后添加...
在这个例子中,`BaseDAO` 类包含了静态变量和方法来处理数据库连接。 2. `Properties` 类:用于读取配置文件,如 `db_mysql.properties`,这个文件通常包含数据库连接的相关信息,如URL、用户名和密码。 3. `...
ASP(Active Server Pages)是一种微软开发的服务器端脚本语言,常用于构建动态网页。...这涉及了ASP的基本语法、数据库操作、以及静态化策略,对于理解和实践Web开发中的动态与静态页面转换有很好的参考价值。
这个类可以被视为一个非静态类,但是它的用途和静态类类似,因为它不依赖于对象状态(即成员变量的值)来工作,而是主要用于执行特定任务——将动态内容替换为静态HTML页面。 这个`template`类有以下几个关键方法:...
在代码实现上,Dao.java类用于数据库连接和数据操作,其中的静态变量和方法确保了数据库连接的建立和关闭。例如,`getConnection()`方法通过`DriverManager.getConnection()`连接到数据库,而`getKhInfos()`方法则...
该项目名为“美好生活日志网”,是一个适用于毕业设计、大作业和实训项目的完整源代码和数据库文件集合。这个压缩包提供了一整套的开发资源,帮助学生或初学者实践Web开发技能,了解网站从设计到实现的全过程。 ...
文档"Java数据库通用操作类.doc"中描述的是一个名为`DBManager`的类,它用于管理和执行数据库操作。这个类通常被设计为一个工具类,帮助开发者简化数据库连接、SQL语句的执行以及结果集的处理。以下将详细介绍`...
例如,你可以创建一个 Razor 视图(.cshtml 文件),在其中定义布局和内容结构,然后在后端代码中遍历数据库记录,用实际数据替换占位符。 接下来,我们讨论“纯静态分页”。在网页中,分页是一种常见的导航机制,...
在IT领域,静态显示键值通常涉及到编程中的数据表示和用户界面设计。在这个场景中,"静态显示键值...无论是在后端处理、前端展示还是在开发辅助工具中,理解和掌握静态显示键值的方法都是IT专业人士必备的技能之一。
4. 数据库SQL:项目包含的数据库SQL文件意味着它需要一个数据库存储数据,可能是MySQL、PostgreSQL、SQLite或者MongoDB等。数据库用于存储用户信息、任务历史、系统配置等关键数据,确保服务的持久性和可查询性。 5...
5. `说明.rar`:这是一个压缩文件,可能包含更详细的项目介绍、设计文档、数据库结构等,解压后可以获取更多项目背景和实现细节。 6. `.settings`:这个目录通常包含项目的特定IDE设置,如Eclipse的编译器、代码...
SQLAlchemy ORM(对象关系映射)是SQLAlchemy的一个核心部分,它提供了一种在Python类和数据库表之间的映射机制。ORM使得开发者可以使用面向对象的方式处理数据库操作,无需关心底层SQL语法。在博客系统中,ORM可以...
`DBHelper`类是为简化SQLite操作而设计的一个辅助类,通过静态函数的方式提供SQL查询接口。下面我们将详细探讨基于Cocos2dx使用SQLite的操作以及`DBHelper`类的实现。 首先,`sqlite3.c`和`sqlite3.h`是SQLite的源...
在软件开发过程中,尤其是涉及到与数据库交互的Java项目,手动编写Bean类和MyBatis的DAO(Data Access Object)类是一项繁琐的任务。标题所提到的"根据表结构自动生成bean类和mybatis dao类"是一种自动化工具或技术...
这就是为什么在处理 Variant 类型时,往往需要一个辅助类来简化转换过程。 标题中提到的"ADO中_variant_t变量的使用与转换"是一个关键的编程实践,它涉及如何有效地操作和转换 Variant 数据。_variant_t 是ATL...
1. 数据库概念:数据库是一个以一定组织结构保存在辅助存储器中的数据集合,用于存储和管理信息。 2. Microsoft Office组件:Microsoft Office系列软件包括Access、Word和Excel,而不包括WPS,WPS是金山公司的办公...