公司现在使用的方式,这种方式或许并不好,但是使用上还是很方便
主要由几个部分组成
1. 数据库表
2. 存储过程
3. 数据库表结构类
4. 数据库访问
5. 缓存
6. 组装器
1. 数据库表
主要用来存放数据,可以按一般的情况来进行存储,也就是,每个字段都是不同的类型,但是也可以使用极端的情况来实现,即,表内所有字段均为String,而具体的转换过程由程序来实现,在这里默认使用全String的形式进行存储.
技巧
a. 所有的表之间不存在任何数据库关联,只存在数据关联,即一个表中某个字段为另外一个表字段的值
b. 部分内容如果包括的东西比较多的话,使用"-1;2,1,0,2;5,1,150,0,1,0,1,26,2,26,3,26,4,26,5,26,6,26;0"的形式进行存储.然后由程序进行分解转换,组合.这样在某些情况下可以简化数据库结构吧
2. 存储过程
在本结构中所有数据库操作均以存储过程的形式进行访问.其中包括数据的查询,修改,删除等.
具体原因(猜测):
a. 简化数据库访问时的代码,不至于在进行数据库访问的时候存在很多的SQL语句
b. 使用存储过程可以对数据库操作进行一定的优化
c. 在存储过程中实现一些简单的逻辑,简化程序的复杂度
d. 提高性能
其它:
可能有同学会觉得使用hibernate,ibatis,nutzDAO不是很方便吗?确实,使用这些都非常的方便,但是,性能上不够好,hibernate它会给你进行自动封装,如果再使用自动关联的话,那样就会损失很多的性能,所以,一般高性能要求的情况,个人建议还是不要这样使用.
3. 数据库表结构类
前面说到在进行访问的时候是直接使用JDBC的形式进行访问,而非hibernate的方面,所以当进行一次查询的时候返回的是一个ResultSet,而要取到ResultSet内的内容,要么使用数字编号,要么使用列名,而数据库表结构类的作用就是实现这样的功能.
示例:
user表:
id,name
user_table类:
public static String id = "Id";
public static String name = "name"
4. 数据库访问
在进行数据库访问的时候直接使用JDBC或是使用Spring自带的JdbcDaoSupport进行访问,以提供最大限度的速度.
5. 缓存
数据库的操作在程序上永远是一个性能瓶颈,所以要想提交性能,那么使用缓存吧,然而,我们这里之所以使用缓存,除了性能的原因以外,还有另外一个原因,那就是构建关系,这一点下面会说到.
6. 组装器
组装,关联数据,在数据库中存放的都是最原始的,没有任何关联的.而且是不能使用的数据,所以在这里引入这个组装器的概念,它的主要作用就是装从数据库中读取的内容进行重新组装,分解,关联,以使这些数据恢复成原来的结构.
主要职责:
a. 进行类型转换,将string转换成int等其它类型
b. 分解某些组合属性,将数据库中的String转换成List,array等其它类型
c. 填充缓存
d. 进行关联.将某个int性的属性通过其它实体的缓存获取到真实实体,然后进行关联.
技巧:
在设计实体类的时候,如果有一个List,而要将它存放成String,那么就在实体中使用两个类型不一样的属性
分享到:
相关推荐
redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统。和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的value类型相对更多。技术博客http://blog.csdn.net/zcjfzcjf
但由于面向列的数据库跟现行数据库存储的思维方式有很大不同,应用起来十分困难。 高扩展性(特别是写入处理) 应用十分困难 最近,像Twitter和Facebook这样需要对大量数据进行更新和查询的网络服务不断增加,面向...
数据库的设计主要包含两个部分,一个是数据库存储分配的物理设计,一个是数据流量分配的逻辑设计。物理设计主要包括数据对象在物理介质上存储分布等各个方面,所要注意的问题就是在不同的存储介质上所放的数据块的...
(1)要有⾜够⼤的内存来存储操作系统、数据库管理系统的核⼼模块、数据缓存区和应⽤程序等。 (2)要有⼤容量的、直接存取的外存来直接存储数据库和进⾏数据备份。 (3)要有较强的通道能⼒来提⾼数据传送率。 3...
HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...
方法三:合理设计存储 方法四:优化数据库参数,减少资源竞争 优化配置数据库的参数,包括各种缓存池的大小,内存区的配置,刷新脏页的策略,锁的策略等。虽然各个数据库都不相同,但是所有的出发点都是为了通过...
不仅从硬件(服务器系统、存储系统、网络系统等)、软件(操作系统、中间件系统、应用软件等)和应用场景(用户访问模式、用户使用频度、数据承载压力等)等多个相关联的维度深入阐述了具有普适意义的数据库性能评估...
MySQL通过高效的缓存机制、查询优化器以及对硬件资源的有效利用,保证了在高负载情况下的稳定性和快速响应。它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发...
MySQL通过高效的缓存机制、查询优化器以及对硬件资源的有效利用,保证了在高负载情况下的稳定性和快速响应。它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发...
MySQL通过高效的缓存机制、查询优化器以及对硬件资源的有效利用,保证了在高负载情况下的稳定性和快速响应。它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发...
MySQL通过高效的缓存机制、查询优化器以及对硬件资源的有效利用,保证了在高负载情况下的稳定性和快速响应。它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发...
MySQL通过高效的缓存机制、查询优化器以及对硬件资源的有效利用,保证了在高负载情况下的稳定性和快速响应。它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发...
MySQL通过高效的缓存机制、查询优化器以及对硬件资源的有效利用,保证了在高负载情况下的稳定性和快速响应。它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发...
MySQL通过高效的缓存机制、查询优化器以及对硬件资源的有效利用,保证了在高负载情况下的稳定性和快速响应。它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发...
MySQL通过高效的缓存机制、查询优化器以及对硬件资源的有效利用,保证了在高负载情况下的稳定性和快速响应。它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发...
MySQL通过高效的缓存机制、查询优化器以及对硬件资源的有效利用,保证了在高负载情况下的稳定性和快速响应。它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发...
MySQL通过高效的缓存机制、查询优化器以及对硬件资源的有效利用,保证了在高负载情况下的稳定性和快速响应。它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发...
MySQL通过高效的缓存机制、查询优化器以及对硬件资源的有效利用,保证了在高负载情况下的稳定性和快速响应。它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发...
MySQL通过高效的缓存机制、查询优化器以及对硬件资源的有效利用,保证了在高负载情况下的稳定性和快速响应。它支持水平扩展(如通过分片、复制等技术)和垂直扩展(如增加硬件资源),以应对大规模数据存储和高并发...