优化数据库设计:。

数据字段类型使用varchar/nvarchar替换char/nchar,变长字段存储空间小,节省存储空间,在查询的时候小的空间字段搜索效率更高。

查询的时候避免全表扫描,可以在where和orderby的字段上建立索引。

where查询子句中不对null值做判断,会导致检索引擎放弃使用索引而使用全表扫描,如:selectid,namefromuserwhereageisnull可以设置age的默认值为0,保证没有null值,修改后的sql查询语句为:selectid,namefromuserwhereage=0。

谨慎使用索引,索引不是越多越好,一般一张表的索引数不要超过6个,如果太多要讨论业务是否合理或者是否索引建在了不常用的字段上,索引可以提高select查询的效率,但是也响应降低了insert和update的效率,因为在执行insert和update时也可能会重建索引。

尽量不要更新索引数据,因为索引数据的顺序是表记录的物理顺序,一旦发生改变将会导致整个表记的顺序发生改变,将会消耗大量资源,如果业务需要频繁更新索引数据列就要考虑索引是否创建合理,比如用户ID,身份证号码或者手机号码不经常改变的列可以考虑创建索引。

字符型字段如果符合业务需求可以修改为数字类型字段,因为字符型字段会降低查询和连接的性能,并且增加存储的开销,执行搜索的适合查询和连接会逐个比较字符串的每一个字符,如果是数据类型比对一次就可以了。

为什么使用Struts。

首先,Struts是MVC的一种实现,它将Servlet和JSP标记(属于J2EE规范)用作实现的一部分,Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展,减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。

另外,struts具有页面导航功能,使系统的脉络更加清晰,通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处,尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。

在Struts1中,由一个名为ActionServlet的Servlet充当控制器(Controller)的角色,根据描述模型,视图,控制器对应关系的struts-config.xml的配置文件,转发视图(View)的请求,组装响应数据模型(Model)。

在MVC的模型(Model)部分,经常划分为两个主要子系统(系统的内部数据状态与改变数据状态的逻辑动作),这两个概念子系统分别具体对应Struts1里的ActionForm与Action两个需要继承实现超类,在这里,Struts1可以与各种标准的数据访问技术结合在一起,包括EnterpriseJavaBeans(EJB),JDBC与JNDI。

在Struts1的视图(View)端,除了使用标准的JavaServerPages(JSP)以外,还提供了大量的标签库使用,同时也可以与其他表现层组件技术(产品)进行整合,比如VelocityTemplates,XSLT等。

通过应用Struts的框架,最终用户可以把大部分的关注点放在自己的业务逻辑(Action)与映射关系的配置文件(struts-config.xml)中。

什么是struts2。

Struts2是Struts的下一代产品,是在struts1和WebWork的技术基础上进行了合并的全新的Struts2框架,其全新的Struts2的体系结构与Struts1的体系结构差别巨大,Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。